メモリ管理 レッスン3
calloc・realloc
ゼロ初期化のcalloc()とサイズ変更のrealloc()を学びましょう。
calloc と realloc の概要
calloc(n, size) はn個のsize バイト要素を確保しゼロ初期化します。realloc(ptr, newsize) は既存のメモリブロックのサイズを変更します。
- calloc:
calloc(n, sizeof(型))- ゼロ初期化 - realloc: 成功時は新しいポインタを返す(元と異なる場合あり)
- realloc失敗時はNULLを返す(元のポインタは有効)
realloc(ptr, 0)は free と同等
calloc でゼロ初期化
calloc は確保したメモリを全て0に初期化します。
Cエディタ
realloc でサイズ変更
realloc で動的配列を拡張します。失敗に備えて一時変数に受けます。
Cエディタ