#include<stdio.h>
#include<stdlib.h>
int main()
{
int m,n;//m是行n是列
scanf("%d %d",&m,&n);
int**dp=(int**)malloc(sizeof(int*)*m)//先给行动态分配
int i;
for(i=0;i<m;i++)
{
dp[i]=(int*)malloc(sizeof(int)*n);//再给列动态分配
}
for(i=0;i<m;i++)
{
free(dp[i]);
}
free(dp);
return 0;
}
在释放动态分配的二维数组内存时,应该先释放每一行的内存,再释放指针数组的内存。