C++中给二维指针分配内存(实现代码)
作者:
我们都知道在 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;
}