DXライブラリ 総合スレッド その19at GAMEDEVDXライブラリ 総合スレッド その19 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト221:名前は開発中のものです。 17/04/15 13:25:19.21 JeCVIRaX.net > ptr = (char*)malloc(size+1); この+1はなに? 本題とは関係ないけど 222:名前は開発中のものです。 17/04/15 14:44:24.56 qT8WsIhy.net DXLib 知らずに覗いてるだけでどう挙動が変わったかわからんので >>213 の疑問には答えられないが、 >>214 おそらくファイルのく中身は表示などに使う文字列だという前提だと、 文字列の終端は NULL で止める必要があるのでその 1byte 分を余計に確保している。 (今どきのコンパイラは malloc での確保と同時に \0 埋めをしてくれるのかもしれないけどちょっと危ないな。) readbin() という名前からして文字列と言っても中身はバイト列と推測できるので、 ファイルの中身には終端 NULL を入れずに記録しているんだろう。 223:213 17/04/15 15:14:07.66 YQ+vHcvV.net +1は苦し紛れにあーだこーだいじる過程でダメ元で付加してみたのでした。 末端に不定の1バイトが付加されるので無駄な容量食いではありますが、危険という認識はありませんでした。 早急に削除します。 そして、自己解決しました。if文の連結順序を誤解していました。何故今まで動いていたんだ・・・。 if ( size = FileRead_size( filename ) == -1 ) errmsg( NOTREAD ,filename ); if ( h = FileRead_open( filename ) == 0 ) errmsg( NOTOPEN ,filename ); ↑これは↓こうですね。 if ( (size = FileRead_size( filename )) == -1 ) errmsg( NOTREAD ,filename ); if ( (h = FileRead_open( filename )) == 0 ) errmsg( NOTOPEN ,filename ); お騒がせしました。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch