3

当我遇到以下示例时,我正在解决一些简单的指针练习:

void deallocate2D(int** array, int nrows) {     
 /*  deallocate each row  */
 int i;
 for(i = 0; i < nrows; i++) {
      free(array[i]);
 }

 /*  deallocate array of pointers  */
 free(array);     
}

数组在 main 中定义为 int** array1;

这是释放二维数组内存的正确方法还是应该在函数中传递一个 int*** 数组?有没有办法检查内存是否已成功释放?

4

1 回答 1

3

对,那是正确的。int***仅当您打算更改不需要的指针的值时才需要。

确实存在可以检查您的内存分配/释放的工具 - Valgrind 应该能够做到这一点。

于 2012-04-26T20:27:00.603 回答