🔧 標準ライブラリ ・ stdlib.h ・ C89
calloc の使い方void *calloc(size_t nmemb, size_t size);
指定個数×指定サイズのメモリをヒープから確保し、全バイトを0で初期化して返す。mallocと違い内容が確定しているため、初期化済みの配列がすぐに欲しい時に安全に使える。 単純にmalloc後にmemsetでゼロクリアするより、内部実装によっては効率的に処理される場合もある。
#include <stdlib.h>
#include <stdio.h>
int main(void) {
int *arr = calloc(5, sizeof(int));
if (arr) {
printf("%d\n", arr[0]);
free(arr);
}
return 0;
}
⚠️ 要素数×要素サイズのあふれは、主要な処理系ではNULLを返して知らせますが、規格上の保証ではありません。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
calloc と一緒に使う関数もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。