1
我的問題來自this的答案。 在評論中他提到我應該以相反的順序刪除分配的動態二維數組。 但是我不明白爲什麼要這樣做。這裏是代碼:正確刪除二維數組?
//intialising array
int size = 10000;
double **array = new double[size];
for(int i = 0; i < size; i++)
array[i] = new double[size];
//conventional de-initialise
for(int i = 0; i < size; i++)
delete[] array[i];
delete[] array;
//reverse de-initialise
for(int i = size - 1; size >= 0; i--)//notice reverse order here
delete[] array[i];
delete[] array;
所以我的問題是,有兩個取消分配二維數組的方法之間有任何顯着差異?
C++約定是以構造對象的順序相反的方式銷燬對象。但是,這個約定與動態分配的對象幾乎沒有關係,除了對象相互依賴的地方。 – jxh
不(但你真的不應該做任何一個)。 –
@Jerry你能告訴我爲什麼你說我不應該做? –