C言語でmalloc関数で確保した配列をrealloc関数で再確保した場合、

C言語関連30閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

ThanksImg質問者からのお礼コメント

なるほど。皆さんありがとうございました。

お礼日時:3/3 14:24

その他の回答(2件)

0

>自分が試した限りだと、変更されていません チマチマした確保ではなく、100メガバイト単位で確保します 最終的には1GBほどの領域を確保してみると違いが出るかもしれないです

0

reallocは、メモリ領域が拡張可能であれば、そのままの場所を使って拡張します。 拡張するには狭かった場合には、新たに拡張後のサイズのメモリを確保し直し、 そこに現在のメモリの内容をコピーし、 現在の領域は開放して、新しい領域のアドレスを返します。 メモリのコピーや領域の解放等、余計な処理が入る分、新しい場所に取り直すのは 負荷がかかるので、可能であれば同じ場所で拡張する方を優先します。 なので、新しいアドレスが変化しない事も、変化することもあります。 詳しくはここらへんを。 https://marycore.jp/prog/c-lang/realloc/