码:
struct LinkedList {
int someData;
LinkedList* next;
LinkedList() : next(0) {}
~LinkedList() {delete next;}
};
void someFunction() {
LinkedList list;
list.next = new LinkedList;
list.next->next = new LinkedList;
list.next->next->next = new LinkedList;
// And so on...
}
Run Code Online (Sandbox Code Playgroud)
我是否正确地说这段代码没有泄漏内存?当列表范围时,它应该调用它的析构函数,它调用next的析构函数,它调用next的析构函数,依此类推,直到调用delete 0为止.