<CLearn/>
メモリ管理 レッスン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エディタ