new数组

new数组时,无法初始化(visual studio 6++)
1.一般数据类型数组:(正确示范)
int *ptr=new int [5]();
指给数组里所有值赋值0,但是我的vc6.0++就不行,出来还是随机值,就得手动赋值了
2.对象数组(正确示范)

Stu *ptr=new Stu[3];   

Stu是一个类,new对象数组不能够初始化,构造函数自动为其赋值,当然后续能改变值。要想对象能够初始化以不同数值,就不能new,要用如下方法:
Stu stu[3]{ stu("zhangna",'w',18), stu("liuyang",'m',19), stu("sunqian",'w',20) }
new和普通的直接定义对象有什么区别和联系呢?
在某个函数中如果new一个对象,这个对象将被存储在堆区,堆区的空间系统不会随意释放,当你下达命令(自己编写代码)才可以被释放。而在函数中直接定义对象,形如Stu stu1("",’ ',19);stu1将被存储在栈区,当函数进行完时空间自动释放,如果不通过指针或者传值传回主函数,你所存储的信息也将完全消失。

在Java和C++中都可以使用new关键字创建数组,以下是具体方法。 ### Java中使用new关键字创建数组 可在运行时动态地创建数组,并为其分配内存空间。 - **创建指定长度的一维数组**:指定数组的类型和长度,即可创建数组。示例代码如下: ```java int size = 5; int[] numbers = new int[size]; ``` 在上述代码中,首先定义了一个变量`size`用于指定数组的大小,然后使用`new`关键字创建了一个名为`numbers`的整型数组,并将其大小设置为变量`size`的值[^2]。 - **创建并初始化一维数组**:结合大括号,在创建数组的同时对其进行初始化。示例代码如下: ```java int[] arr = new int[]{1, 2, 3, 4, 5}; ``` 此代码创建了一个包含5个元素的整型数组[^1]。 - **创建多维数组**:以二维数组为例,可以使用类似于二维表格的方式来表示多维数据。示例代码如下: ```java int[][] matrix = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; ``` 上述代码创建了一个名为`matrix`的二维整型数组,每个花括号内的元素列表代表数组的一行[^2]。 ### C++中使用new关键字创建数组 可以动态分配数组内存,数组长度可以根据情况而定。以三维数组为例,示例代码如下: ```cpp int*** a = new int**[5]; for (int i = 0; i < 5; ++i) { a[i] = new int*[6]; for (int j = 0; j < 6; ++j) { a[i][j] = new int[7]; } } // 使用完后需要释放内存 for (int i = 0; i < 5; ++i) { for (int j = 0; j < 6; ++j) { delete[] a[i][j]; } delete[] a[i]; } delete[] a; ``` 在上述代码中,首先创建了一个三维数组,然后使用嵌套的`for`循环为每一层数组分配内存。使用完数组后,需要使用`delete[]`释放分配的内存,避免内存泄漏[^3][^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值