すれ立てるまでもない質問はここで 第75刷
■ このスレッドは過去ログ倉庫に格納されています
0482469
2006/05/05(金) 01:50:50遅れましたが、ありがとうございました。そしてまた質問です…
Char*型のグローバル変数hogeにテキストファイルを読み込んだ後、
キーが押されたら一字ずつ出力していくようなプログラムを作ってます。
(ようはよくあるノベルゲームです)
現在はキーが押されたらhoge+=1(2バイト文字なら2)とインクリメントし、
WM_DESTROYメッセージが来たらdelete[] hoge;で確保した配列を削除してます。
ただインクリメントすると、配列のどこまでインクリメントしたのにも関わらず、
アプリケーション終了時(deleteが呼ばれたとき?)に確実にヒープエラーが起きます…
何が原因なのか見当が付きませんorz どなたか対策をご教示下されば幸いです。
テキストファイル読み込みの関数の処理は、↓な感じです。
HANDLE fh;
DWORD dwFileSize, result;
fh = CreateFile ("hoge.txt", GENERIC_READ, 0, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (fh == INVALID_HANDLE_VALUE) {
MessageBox (NULL, "ファイルが開けませんでした。", "hoge.txt", MB_OK);
}
dwFileSize = GetFileSize(fh, NULL);
hoge= new char[dwFileSize + 1];
ReadFile(fh, hoge, dwFileSize, &result, NULL);
hoge[result] = '\0';
CloseHandle (fh);
■ このスレッドは過去ログ倉庫に格納されています