解析该代码int **array; // 假定数组第一维长度为 m, 第二维长度为 n // 动态分配空间 array = new int *[m]; for( int i=0; i<m; i++ ) { array[i] = new int [n]; } //释放 for( int i=0; i<m; i++ ) { delete [] array[i]; } delete [] array;
时间: 2024-04-08 18:31:36 浏览: 36
这段代码演示了如何动态分配一个二维数组,并在使用完后释放内存。
首先,声明了一个指向指针的指针`int **array`,它将被用于存储二维数组的地址。
然后,使用`new`操作符分配了一个大小为`m`的一维指针数组。这将用于存储每行的地址。
接下来,使用循环为每行分配一个大小为`n`的一维数组。这样就创建了一个`m x n`的二维数组。
最后,使用嵌套的循环和`delete[]`操作符释放每行的内存,然后再使用`delete[]`操作符释放一维指针数组的内存。
这样就完成了二维数组的动态分配和释放内存的过程。记得在使用完动态分配的内存后,始终要释放它们,以避免内存泄漏。
阅读全文