2024年4月28日发(作者:)
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]=newint[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]。如下图所示:
最后
实际上,第一种方法和第二种方法的区别在于,第一种方法使
用的是指针数组,第二种方法使用的是数组指针。不同的方法
导致不同类型的指针用于存储地址值。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1714260484a2412329.html
评论列表(0条)