質問: temp_str; } else { printf("You failed to shrink the memory."); exit(2); } ``` 上記の箇所です。 その後、再度適当なファイルからふたたび30B分をとりだしたところ、 なぜか、(1)で確保した量と同じ分ファイルから取り出しているようなのです。。。 そして、(1)でのメモリ確保量を100KBとかに一桁下げると正しく、reallocでメモリを縮小できているようです。 どうにも私の知識量では腑に落ちないのでお聞きしました。 ご教授のほどよろしくお願いいたします。
回答: こんにちは。 > > なぜか、(1)で確保した量と同じ分ファイルから取り出しているようなのです。。。 > > > これはどのようにして確認されたのでしょうか? php.strに1,000,000Bytesのメモリを確保してそこへ読み出していたデータが残っているだけということはありませんか? reallocで「必ず」メモリを確保するとは限りません。特にサイズを小さくするだけであれば、事実上何もしない処理系もあると思います。