1
디렉터리 개체 이름, 디렉터리 내의 하위 디렉터리 및 마지막으로 디렉터리 자체를 삭제하는 생성자를 만들려고합니다. 그러나 delete [] *subDirectories
행은 사용될 때마다 segfault를 발생시킵니다.빈 개체 배열을 어떻게 삭제합니까?
하위 디렉토리는
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