ホームページ  >  に質問  >  本文

C++ - _CrtDumpMemoryLeaks について

の使用法をテストするために自分でバイナリツリーを作成しました。コードは次のとおりです。ブレークポイントを使用して追跡したところ、すべてのノードが削除されていることがわかりましたが、出力ウィンドウにはまだプロンプトが表示されています。 _CrtDumpMemoryLeaks

リーリー ここで 2 つの質問があります:

    この単純なコードのメモリリークはどこですか
  1. が提供するプロンプト情報から自分のメモリ リークがどこにあるかを見つけるには、どのような基本知識が必要ですか? より具体的に言うと、どうすれば

    が提供するアドレス 0x02EE2880 を素早く見つけることができますか?それ以上ある場合は、絶対に手動で検索することはできません。そして、09 00 00 00 00.... は何を表しますか?_CrtDumpMemoryLeaks给出的提示信息得出自己内存泄漏之处, 需要那些基础知识? 再具体些, _CrtDumpMemoryLeaks给出的地址0x02EE2880等如何从代码中迅速找到, 毕竟写多点的话肯定不能手动找啊. 以及 09 00 00 00 00....

ringa_leeringa_lee2686日前727

全員に返信(1)返信します

  • phpcn_u1582

    phpcn_u15822017-05-16 13:25:55

    _CrtDumpMemoryLeaks(); t がまだ破棄されていない場合

    リーリー

    これに変更してください

    プロンプトメッセージのデータを見ると、それはあなたが言及した文字列 09 00 00 00 であり、これがリークしたメモリの内容です

    リーリー

    バイト 0 ~ 3 は int、リトル エンディアン、4 ~ 7 と 8 ~ 11 はそれぞれ左ポインタと右ポインタであり、合計は new Node(9);

    返事
    0
  • キャンセル返事