C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス malloc

🔧 標準ライブラリ ・ stdlib.h ・ C89

malloc の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

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 と一緒に使う関数

freemalloc/calloc/reallocで確保したメモリ領域を解放する。解放後は同じポインタを再利用してはいけない(必… calloc指定個数×指定サイズのメモリをヒープから確保し、全バイトを0で初期化して返す。mallocと違い内容が確定しているため、… realloc既に確保済みのメモリ領域のサイズを変更する。拡張・縮小いずれも可能で、内容は元のサイズ分だけ保持される。戻り値のアドレス…

同じ分類(標準ライブラリ)の関数

abort abs atexit atof atoi bsearch calloc div exit free getenv labs qsort rand realloc srand

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る