1
我想創建一個構造函數,刪除一個目錄對象的名稱,然後目錄中的子目錄,最後是目錄本身。但是,使用delete [] *subDirectories
行時會導致段錯誤。如何刪除空對象的數組?
子目錄通過
subDirectories[subDirectoryCount++] = new Directory(arguments[1], umask, time, this);
Directory::~Directory()
{
delete [] name;
for (int i = 0; i < subDirectoryCount; i++)
delete subDirectories[i];
delete [] *subDirectories;
}
'delete [] subDirectories'。確保'subDirectories'是用'new []'創建的,否則你的行爲不確定。 – 0x499602D2
如果是C++應該明確避免C風格的數組,並使用['std :: vector'](http://en.cppreference.com/w/cpp/container/vector) – NetVipeC