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