- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++2010のデバッグ中の変数表示について)
VC++2010のデバッグ中の変数表示について
このQ&Aのポイント
- VC++2010でデバッグ中の変数表示について疑問があります。自動変数やローカル変数が表示されない場合の理由を教えてください。
- VC++2010でデバックのブレークポイントを使用して変数の中身を確認している際、時折自動変数やローカル変数が表示されません。表示されない理由を教えてください。
- VC++2010で変数の中身をデバッグ中に確認する際、一部の自動変数やローカル変数が表示されないことがあります。なぜ表示されないのか、教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
result = (char*)tagger->parse(p); delete tagger; ★ taggerがdeleteされたので、そこから返された resultが指している空間も無効になったと 思います。それで、中身も見えないし、使えば エラーになるのでしょう。 MessageBoxの後までtaggerをdeleteしない ようにすれば解決するのでは?
その他の回答 (2)
- hidebun
- ベストアンサー率50% (92/181)
回答No.3
Mecab::Tagger::Parseのリファレンスを見ると、 http://mecab.sourceforge.net/doxygen/classMeCab_1_1Tagger.html#a54673ae9b361065388564354b059b61f You should not delete the returned string. と書いてあるので、Taggerの内部でメモリを確保しているのでしょうね。 後は#2さんのおっしゃる通り、taggerをdeleteした時にメモリが解放され、 その後の参照により、落ちているのでしょう。
質問者
お礼
resultは他のメモリを見に行ってるだけですもんね。 その対象がなくなればエラー吐くのも道理でした。 ありがとうございました。
- D-Matsu
- ベストアンサー率45% (1080/2394)
回答No.1
resultが未初期化。 ってのが表示されない・例外双方の原因でしょう。
お礼
ご指摘の通りでした。 表示されないのは、参照先が無かったからだったんですね。 ありがとうございました。