C++——动态内存分配3
阅读原文时间:2023年07月10日阅读:1

动态创建多维数组  new 类型名T[下标表达式1][下标表达式2]…;

如果内存申请成功,new运算返回一个指向新分配内存首地址的指针,是一个T类型的数组,数组元素的个数为除最左边一维外各维下标表达式的乘积。例如:

char (*fp)[3];//指向一维数组的指针,即指向一个整个数组,如果指针加1,会跳过整个数组。

fp = new char[2][3];//如果fp+1,则会跳到该二维数组的下一行。

#include

using namespace std;

int main()

{        float (*cp)[9][8];

int i,j,k;

cp = new float[8][9][8];

for (i=0; i<8; i++)

for (j=0; j<9; j++)

for (k=0; k<9; k++)

*(*(*(cp+i)+j)+k)=i*100+j*10+k;   //_通过指针访问数组元素_

for (i=0; i<8; i++)

{        for (j=0; j<9; j++)

{    for (k=0; k<8; k++)

cout<

//将指针__cp作为数组名使用_,通过数组名和下标访问数组元素_

cout<

}

cout<

}

}

动态存储分配函数(c语言)

分配:void *malloc( size );参数size:欲分配的字节数

返回值:成功,则返回void型指针。
        失败,则返回空指针。

头文件: 和 

释放:void free( void *memblock );参数memblock:指针,指向需释放的内存。返回值:无

头文件: 和