- ベストアンサー
_dupenv_s関数でメモリリーク
VC++2005のMFCにてアプリを作成しています。 環境変数「TEST_ENV」の値を「OFF」にあらかじめ設定し、 _dupenv_s()関数にて変数の値を読込むプログラムなのですが、 プログラムをデバッグモードで実行し出力欄を見ると、 「Detected memory leaks!」と表示され、 原因箇所を探ると、どうやら ============================================== char* pGetEnv; size_t len; _dupenv_s( &pGetEnv, &len, "TEST_ENV" );←ここ ============================================== にて発生しているようです。 MSDNによると、lenにはバッファ容量を指定とあるので、 原因として、lenに何も指定されておらず、リークが発生していると考え、 Webで方法を色々調べたのですが、どのサイトも同じような書き方で、 解決法が分かりません。 どなたかご存知の方おられましたら、ご教授お願い致します。 なお下記にメッセージログを記載します。 Detected memory leaks! Dumping objects -> {73} normal block at 0x003A7018, 4 bytes long. Data: <OFF > 4F 46 46 00
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
このQ&Aのポイント
- WiFiをau光からソフトバンクエアーに変更した後、キヤノンのプリンターから印刷ができなくなりました。
- 特に、TS3530モデルのプリンターを使用しており、この問題は、WiFi設定やネットワーク接続の見直しが必要です。
- 解決策として、プリンターの再設定やネットワークの再チェックが有効です。また、キヤノンの公式サポートも参考にすると良いでしょう。
お礼
free( pGetEnv ); を追加することで解決しました。 全くの思い違いだったようです。。 ポインタを扱う際はもっと慎重にならないといけないですね。 また今後は思い込みでデバッグしないよう気をつけます。 問題解決したので、失礼ながらまとめてお礼とさせて頂きます。 ご回答ありがとうございました。