C/C++动态二维数组的内存分配和释放

C/C++动态二维数组的内存分配和释放

原博客:http://www.cnblogs.com/Azhu/articles/3950487.html

C语言

//二维数组动态数组分配和释放

//数组指针的内存分配和释放

//方法一

char (*a)[N];//指向数组的指针

a = (char (*)[N])malloc(sizeof(char [N]) * m);

free(a);

//方法二

char **a;

int i;

a = (char **)malloc(sizeof(char *) * m);//分配指针数组

for(i=0; i

a[i] = (char *)malloc(sizeof(char) * n);//分配每个指针所指向的数组

for(i=0; i

free(a[i]);

free(a);

//方法三

char **a;

int i;

a = (char **)malloc(sizeof(char *) * m);//分配指针数组

a[0] = (char *)malloc(sizeof(char) * m * n);//一次性分配所有空间

for(i=1; i

a[i] = a[i-1] + n;

free(a[0]);

free(a);

//指针数组的内存分配和释放

//方法一

char* a[M];//指针的数组

int i;

for(i=0; i

a[i] = (char *)malloc(sizeof(char) * n);

for(i=0; i

free(a[i]);

//方法二

char* a[M];//指针的数组

int i;

a[0] = (char *)malloc(sizeof(char) * M * n);

for(i=1; i

a[i] = a[i-1] + n;

free(a[0]);

C++

//二维数组动态数组分配和释放

//数组指针的内存分配和释放

//方法一

char (*a)[N];//指向数组的指针

a = new char[m][N];

delete[] a;

//方法二

char **a;

a = new char* [m];//分配指针数组

for(int i=0; i

a[i] = new char[n];//分配每个指针所指向的数组

for(i=0; i

delete[] a[i];

delete[] a;

//指针数组的内存分配和释放

//方法一

char **a;

a = new char* [m];

a[0] = new char[m * n];//一次性分配所有空间

for(int i=1; i

a[i] = a[i-1] + n;//分配每个指针所指向的数组

delete[] a[0];

delete[] a;

//方法二

char* a[M];//指针的数组

for(int i=0; i

a[i] = new char[n];

for(i=0; i

delete[] a[i];

//方法三

char* a[M];//指针的数组

a[0] = new char[M*n];

for(int i=1; i

a[i] = a[i-1] + n;

delete[] a[0];

相关推荐

14 最佳犯罪心理学书籍 2024
bst365老牌体育

14 最佳犯罪心理学书籍 2024

📅 08-26 👁️ 9543
谢的笔顺(笔画顺序)汉字谢的笔顺动画
365bet官网网投

谢的笔顺(笔画顺序)汉字谢的笔顺动画

📅 10-09 👁️ 9999
qq留言板怎么全部删除
365bet官网网投

qq留言板怎么全部删除

📅 10-11 👁️ 5412