🔧 標準ライブラリ ・ stdlib.h ・ C89
malloc の使い方void *malloc(size_t size);
指定バイト数のメモリ領域をヒープから動的に確保し、先頭アドレスを返す。確保した内容は初期化されない(不定値)ため、必要ならmemsetやcallocで初期化する。失敗時はNULLを返す。 ヒープメモリは有限なので、確保しっぱなしで解放を忘れる「メモリリーク」を作り込まないよう注意する。
#include <stdlib.h>
#include <stdio.h>
int main(void) {
int *p = malloc(5 * sizeof(int));
if (p) {
p[0] = 10;
printf("%d\n", p[0]);
free(p);
}
return 0;
}
⚠️ 戻り値のNULLチェックを省略すると確保失敗時にヌルポインタ参照でクラッシュする。確保したら必ずfreeで解放する。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
malloc と一緒に使う関数もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。