基礎となるデータ構造は次のとおりです。実際にはメモリ割り当て、リンクリストの地図を使用すると、私が使用しています
map<int, Cell> struct Cell{ char c; Cell*next; };
データ構造は、リンクされたリストにint型をマップします。マップ(この場合はハッシュマップとして実装されています)は、リスト内の値の検索が一定の時間内に実行されるようにします。リンクリストにより、挿入と削除も一定の時間内に実行されます。リストは私がマップ内の要素電池を入れて構築されると、リンクされたリスト
を構築し、
Cell *cellPointer1 = new Cell;
//プロセス細胞:各処理の繰り返しで私は何かなどをやっています。構造はうまく動いていて、私のプログラムの後で私はメモリを解放します。リスト内の各セルに対して。
delete cellPointer1
しかし、私のプログラムの最後には、メモリリークがあります。 は、メモリリークをテストするために私が使用します。私はどこかの道に沿って私はマップ内の細胞を入れていたという事実は私が正しくメモリを解放することはできませんことを考えてい
#include <stdlib.h>
#include <crtdbg.h>
#define _CRTDBG_MAP_ALLOC
_CrtDumpMemoryLeaks();
。誰もがこの問題を解決する方法についてのアイデアを持っていますか?
まず、デバッガとは何ですか?それでは、Cellはリストです。すべてのノードで単に "delete"を呼び出すことはできません。リストはある方法で削除する必要があります。それ以外はメモリリークがあります。 –
どのように地図に要素を配置しますか? 'theMap.insert(std :: make_pair(key、* pCell) 'はメモリリークを引き起こします。 – BruceAdi