使用此函数分配二维数组后:
char** make_matrix(int M, int N)
{
char** MAT = (char**)malloc(M * sizeof(char));
for (int i = 0; i < M; i++)
{
MAT[i] = (char*)malloc(N * sizeof(char));
}
return MAT;
}
我发现试图free(M[0])
导致断言失败。我能找到的所有与释放二维数组相关的内容都使用int
而不是char
. 然而,char
用int
上面的替换每个,断言失败就消失了。为什么会这样,然后我怎样才能释放整个二维数组?