<CLearn/>
メモリ管理 レッスン2

malloc・free

malloc()・free()・void*のキャストを学びましょう。

malloc と free の基本

malloc(size) は指定バイト数のメモリをヒープに確保し、void * を返します。 失敗時はNULLを返すので必ずチェックしましょう。free(ptr) で解放します。

  • malloc(n * sizeof(型)) でn要素分確保
  • 戻り値の void * を適切な型にキャスト
  • 確保したメモリは初期化されない(ランダム値)
  • 必ず free() で解放する

基本的な malloc・free

整数配列を動的確保して使用後に解放するパターンです。

Cエディタ

2次元配列の動的確保

ポインタのポインタで2次元配列を動的に確保できます。

Cエディタ

void * とキャスト

void * は型なしポインタです。malloc の戻り値を適切な型にキャストして使います。

Cエディタ