coo*_*per 2 c memory free pointers
在C中,我有以下创建2D数组的功能.
int** createMatrix(int xdim, int ydim){
int** mat = malloc(xdim*sizeof(int*));
int i;
for(i=0; i<xdim; i++){
mat[i] = malloc(ydim*sizeof(int));
}
return mat;
}
Run Code Online (Sandbox Code Playgroud)
在调用函数中(在这种情况下为int main()):
int **matA = createMatrix(10, 10);
free(matA);
Run Code Online (Sandbox Code Playgroud)
我似乎有一个释放内存的问题,我想知道这是否因为变量"mat"永远不会被释放.
是否足以免费(matA),就像我一样?或者是我无法解决的问题(垫子)?
您需要先单独释放每一行(基本上是您创建的相反过程)
for(i=0; i < xdim; i++)
free(matA[i]);
free(matA)
Run Code Online (Sandbox Code Playgroud)
我建议创建一个freeMat函数来执行此操作