我们都知道在 C++ 中分配动态数组用的是 new , 撤销动态数组用的是 delete[ ] ,现在让我们来看看怎么利用这两个关键字给二维指针分配内存。
原理就不写在这里了,毕竟网上的介绍有很多,代码如下所示:
#include <iostream> using namespace std; #define N 5 #define M 10 int main(int argc, char **argv) { int **p; int i,j; p = new int* [N]; for (i = 0; i < N; i++) p[i] = new int [M]; for (i = 0; i < N; i++) for (j = 0; j < M; j++) p[i][j] = i + j; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { cout<<"["<<p[i][j]<<"]"<<" "; cout<<*(*(p + i) + j)<<" "<<endl; } cout<<endl; } for (i = 0; i < N; i++) { delete [] p[i]; p[i] = NULL; } delete [] p; p = NULL; return 0; }