0
我想知道你們中的一個人是否可以確認我正確地刪除了一些動態分配的內存。C++正確地刪除動態分配的內存
的TileWrapper下面被初始化爲指針的二維數組:
private:
TileWrapper*** mLayout;
我已經簡化初始化向您展示的重要組成部分:
void generateLayout() {
mLayout = new TileWrapper**[mRows];
for(int i = 0; i < mRows; i++) {
mLayout[i] = new TileWrapper*[mColumns];
}
for(int i = 0; i < mRows; i++) {
for(int j = 0; j < mColumns; j++) {
mLayout[i][j] = new TileWrapper();
}
}
}
,我需要確認的部分是破壞如下圖所示:
~Destructor() {
for (int i = 0; i < mRows; i++) {
for (int j = 0; j < mColumns; j++) {
delete mLayout[i][j];
}
delete[] mLayout[i]; // CONFIRM THIS
}
delete[] mLayout; // CONFIRM THIS
}
我特別關心刪除因爲[]字符,//後面有//確認這個。是我的代碼內存泄漏證明?謝謝。
是的,它似乎是內存泄漏證明。您可以使用內存檢查工具(如Valgrind或DrMemory – Hugal31
'std :: vector')來檢查它。一探究竟。到目前爲止已有二十年的歷史。 – molbdnilo
@molbdnilo我知道,我不想使用它,因爲我不需要任何附帶的功能。 – Anthroyd