我正努力在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
。但两个malloc
s。
free(OriginalPixels[0]);
free(OriginalPixels);
当然,如果数组有多行,则需要两行中的更多行。