のVisual C++はので、私は私ができるように、最も単純なテストケースとそれを絞り込まとこれを得た私のコードでメモリリークが見つかりました:stringはメモリリークを引き起こしますか?
#define _CRTDBG_MAP_ALLOC // required
#include <stdlib.h> // to enable MSVC++
#include <crtdbg.h> // memory leak detection
#include <string>
using namespace std;
int main() {
string foo;
_CrtDumpMemoryLeaks();
return 0;
}
出力:
Detected memory leaks! Dumping objects -> {130} normal block at 0x008748A8, 8 bytes long. Data: B4 F9 44 00 00 00 00 00 Object dump complete.
を私は「文字列fooのをコメントアウトした場合; "それは何も検出しません。
私は何とかFOOの割り当てを解除する必要がありますか。
あなたはどちらの任意のスタックベースのオブジェクトを持っている場合は明らかに不可能です! '_CrtDumpMemoryLeaks()'は* C *ランタイムライブラリからのものです。それはデストラクタを予期していなかった... –
@Oli:不可能な方法? sharptoothはそれを行う方法を示しました。 –
は、今私は私が間違ってやっていたかを把握しようとしているので、多くの時間を無駄にするためにしてばかな質問であることが判明したものを尋ねるために愚かな感じ。説明ありがとう。 – zi3guw