在新浪微博的笔试上遇到这类题目
当时的做法是直接malloc(m*n*k),回来后发现不对。
现列出详细代码,引以为戒:
int main()
{
int i, j, k;//5 6 7三维矩阵
//malloc
char ***p=(char ***)malloc(5*sizeof(char **));
for(i=0;i<5;i++)
{
p[i]=(char **)malloc(6*sizeof(char *));
for(j=0;j<6;j++)
{
p[i][j]=(char *)malloc(7*sizeof(char));
}
}
//set to zero
for(int i=0;i<5;i++)
for(int j=0;j<6;j++)
for(int k=0;k<7;k++)
p[i][j][k]=0;
//free
for(int i=0;i<5;i++)
for(int j=0;j<6;j++)
free(p[i][j]);
for(int i=0;i<5;i++)
free(p[i]);
free(p);
}