c_cpp Ç与C ++的动态多维数组的建立与释放

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp Ç与C ++的动态多维数组的建立与释放相关的知识,希望对你有一定的参考价值。

//二维动态数组的分配与释放
//语言: C & C++
/*-------------------------------------------*/
int row, col;
int **mat;

//C
mat = (int**) malloc(row * sizeof(int *));
for(int i = 0; i < row; i++)
  mat[i] = (int*) malloc(col * sizeof(int));

for(int i = 0; i < row; i++)
  free((void*) mat[i]);
free((void*) mat);

//C++
mat = new (int*)[row];
for(int i = 0; i < row; i++)
  mat[i] = new int[col];

for(int i = 0; i < row; i++)
  delete mat[i];
delete []mat;
/*-------------------------------------------*/
  
//三维数组的分配与释放
//语言:C
/*-------------------------------------------*/
int m, n, p;
int ***triArray;
  
triArray = (int ***) malloc(m * sizeof(int **));
for(int i = 0; i < m; i++)
  triArray[i] = (int **) malloc(n * sizeof(int *));
for(int i = 0; i < m; i++){
  for(int j = 0; j < n; j++)
    triArray[i][j] = (int *) malloc(p * sizeof(int)); 
}
  
for(int i = 0; i < m; i++){
  for(int j = 0; j < n; j++)
    free((void*) triArray[i][j]);
}
for(int i = 0; i < m; i++)
  free((void*) triArray[i]);
free((void*) triArray);
/*-------------------------------------------*/

以上是关于c_cpp Ç与C ++的动态多维数组的建立与释放的主要内容,如果未能解决你的问题,请参考以下文章

C语言中malloc和静态数组最多能开到多大呢

C语言多维数组与多级指针

动态多维数组c#

正确使用 memset 与动态分配的多维数组

数据结构与算法之数组

如何在多维数组/网格c ++中创建List