掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
なぜヒープの解放でエラー? (ID:68295)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 書き込みの時じゃなくて、関数を抜けるときにエラーになるのは何でなのでしょうか? そもそも C/C++ は1バイト書き込みごとにエラーチェックしたりする親切言語ではない だから書き込みそのものでは一切エラーチェックされない 関数を抜けるときに vector::~vector が呼ばれるわけだが、 Debug 版はこれがメモリ破壊チェックしているのでエラーが出る # Release 版はチェックしないので何も言わずに吹っ飛ぶ可能性が大 > 1バイトだけ読んで書き込んでくれるわけじゃないんですね。 > 2バイトreadした場合 「1バイト」という文言をどういう意味に使っているのかな? wifstream にどのような挙動を期待しているのかな? wifstream は実質「使えない」関数なので注意しないとだめだぞ wifstream は以下のような挙動を行うので注意が必要だ ファイルから 'B' を読む→wchar_t に変換する→wchar_t の L'B' を wchar_t バッファにストアする ファイルから 'M' を読む→wchar_t に変換する→wchar_t の L'M' を wchar_t バッファにストアする ファイルから SJIS の第一バイトを読む→wchar_t に変換(失敗)する→ 第一バイトのコード(=漢字になっていない)を wchar_t バッファにストアする ファイルから SJIS の第二バイトを読む→wchar_t に変換(失敗)する→ 第二バイトのコード(=漢字になっていない)を wchar_t バッファにストアする 意味がない、と先にコメントした理由はこういうことなわけだ
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.