次の例に出くわしたとき、いくつかの簡単なポインター演習を解決していました。
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 として定義されます。
これは 2 次元配列のメモリの割り当てを解除する正しい方法ですか、それとも代わりに int*** 配列を関数に渡す必要がありますか? メモリの割り当てが正常に解除されたことを確認する方法はありますか?