コード:私はこのコードがメモリをリークしていないと言うことで修正リンクリストの実装でメモリがリークしていますか?
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...
}
アム?リストスコープのときは、デストラクタを呼び出す必要があります。このデストラクタは、delete 0が呼び出されるまでnextのデストラクタを呼び出し、nextのデストラクタを呼び出します。
いいですね。しかし、なぜあなたはそれをしますか? –
メモリプロファイラを投げてチェックしてください。 Valgrindは良いものです。 –
デストラクタがスタックのサイズを超えるように多くの項目をリストに入れるまでは問題ありません。 –