【发布时间】:2015-04-04 10:13:04
【问题描述】:
我正在尝试创建一个构造函数来删除目录对象名称,然后是目录中的子目录,最后是目录本身。但是,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[]创建的,否则您的行为未定义。 -
如果是 C++,应该绝对避免使用 C 样式数组,并使用像
std::vector这样的标准容器
标签: c++ arrays memory destructor delete-operator