我正努力在C中释放内存。程序运行良好,但当前的free语句在Dr.memory中运行时报告内存泄漏。这些语句用于知道列(co)和行(ro)数量的多维数组。

int **OriginalPixels;
OriginalPixels=(int **)malloc(sizeof(int *)*ro); //utilizing double         pointer
OriginalPixels[0]=(int *)malloc(sizeof(int)*co*ro);// Connects to beginning.

我现在可以发表这个声明了
free(*OriginalPixels);

这是对的吗?欢迎任何反馈。

最佳答案

不,每个malloc都需要一个匹配的free。你只有一个free。但两个mallocs。

 free(OriginalPixels[0]);
 free(OriginalPixels);

当然,如果数组有多行,则需要两行中的更多行。

07-24 14:24