gpt4 book ai didi

c - 从 C 函数中释放二维指针数组

转载 作者:行者123 更新时间:2023-12-01 08:55:13 24 4
gpt4 key购买 nike

在 C 中,我有以下用于创建二维数组的函数。

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;
}

在调用函数中(在本例中为 int main()):

int **matA = createMatrix(10, 10);
free(matA);

我似乎在释放内存方面遇到了问题,我想知道这是否是因为变量“mat”从未被释放。

像我一样释放(matA)就够了吗?还是我无法释放(mat)的问题?

最佳答案

您需要先单独释放每一行(本质上是创建过程的逆过程)

for(i=0; i < xdim; i++)
free(matA[i]);

free(matA)

我建议创建一个 freeMat 函数来执行此操作

关于c - 从 C 函数中释放二维指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27807956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com