バイトの一定量が割り当てられたときに破断
-
26-09-2019 - |
質問
_CrtDumpMemoryLeaks();
あなたは知らなかった場合は、プログラム内のすべてのメモリリークをダンプする機能です。鉱山現在のディスプレイ私は3632062バイトのメモリリークを(それが割り当て解除されていない)があること。
私は思っていました。 バイトの一定量が割り当てられていると、Visual C ++ Expressが破損する原因とする方法はありますか? 3632062バイトが割り当てられているときに私が壊れる可能性がありそうすれば、その後、私はそれを割り当てられた場所を確認するには、スタックトレースをお読みください。
これは、現在、私はそれを修正することができるようにメモリが割り当てられている発見のために考えることができる唯一の方法です。私は確信していますが、漏れがファイルI」に関連している(..唯一のファイルI負荷が2767136バイトであるため)私は自分のコードをたくさん検索してきたが、私は3632062のバイトを割り当てる必要がありますどこ私はどこにも見つけることができませんます。
上で動作メートルメモリリークの原因を見つけるための任意のアイデア?私が使用しているネイティブC ++は、Visual C ++ 2010
解決
あなたは _CrtSetAllocHook 使用してこれを行うことができます>総メモリ使用量を追跡すること。
UMDH のあなたのリストが表示されますすべてのヒープ内のブロックを割り当てられました。これは、あなたが望むものであるかもしれない、すべてのブロックが割り当てられた場所を与えられた合計のallocしきい値を打つに壊すので、あなたを教えてくれません。
他のヒント
私は以前にこの単純なメモリリークディテクタするとを使用していますメモリリークを見つけるための良い成功ます。