c++ new二维数组
c++ new二维数组 1
new关键字
new关键字用于申请一段动态内存空间,位于堆上,在程序运行过程中才执行。可以用来创新数组和实例化对象。如图所示:用new申请一维动态数组,大小为5。
int*arrayPtr=newint[5];
其中new后面接的是对象,上面为一个int[5]的数组,其返回值为指向数组元素的指针变量。即申请了sizeof(int)*5个字节大小的内存,并返回其地址值存放于指针arrayPtr中。
二维数组动态申请
方法一
int**arrayPtr=newint*[5];for(int i=0;i<5;++i){
    arrayPtr[i]=newintsizeof 指针[5];}
其中,第一行的new申请了sizeof(int*)x5个字节大小空间,并将其地址值存放于二级指针arrayPtr中(此处应为二级指针,因为指向的数组元素为一级指针),简单点说就是申请了一个数组大小为5,元素数据类型为 int* 的数组。for循环的代码表示的是遍历arrayPtr数组(里面元素为int*)里的每一个元素,并申请大小为5的一维数组。如下图所示:
方法二
int(*arrayPtr)[5]=newint[5][5];
其中,new申请了sizeof(int)x5x5的内存大小,并将其地址值存储于指针arrayPtr,arrayPtr为数组指针,指向int[5]的数组。也就是说,创建了一个大小为5的数组,数组中的元素为int[5],所以其地址值保存的指针类型为指向int[5]的指针类型,就是int(*)[5]。如下图所示:
最后
实际上,第一种方法和第二种方法的区别在于,第一种方法使用的是指针数组,第二种方法使用的是数组指针。不同的方法导致不同类型的指针用于存储地址值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。