C++——动态内存分配3

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

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

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

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

 

 

#include<iostream>

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[i][j][k]<<"  "; 

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

                            cout<<endl;

                   }

                   cout<<endl;

         }

}

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

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

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

头文件:<cstdlib> 和 <cmalloc>

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

头文件:<cstdlib> 和 <cmalloc>

posted @ 2019-01-08 11:30  lemaden  阅读(183)  评论(0编辑  收藏  举报