动态分配二维数组
C
int **a;
a=(int**)malloc(sizeof(int*)*(n+10));
for(int i=0;i<n+10;i++)
{
a[i]=(int*)malloc(sizeof(int)*(m+10));
memset(a[i],0,sizeof(int)*(m+10)); //动态分配的空间每行是连续的 行与行不连续 因此空间不连续
//申请每行的空间 都要memset 并且 memset 的最后一个参数 要 * 数量
}
for (int i = 0; i < n + 10; i++)
free(a[i]);
C++
int **a=new int*[n+10];
for(int i=0;i<n+10;i++)
{
a[i]=new int[m+10]();
memset(a[i],0,sizeof(int)*(m+10));
}
//释放空间
for(int i=0;i<n+10;i++)
{
delete []a[i];
a[i]=NULL;
}
delete []a;
a=NULL;