トップページ – C言語編 – 標準ライブラリのリファレンス(名前順)
トップページ – C言語編 – 標準ライブラリのリファレンス(ヘッダ別)
概要 |
動的にメモリ領域を確保し、0 で初期化する |
|
ヘッダ | ||
形式 |
void* calloc(size_t n, size_t size); |
|
引数 |
n |
確保する区画の個数。 |
size |
||
戻り値 |
確保された領域の先頭を指すポインタ。メモリ不足などの要因で失敗した場合には、ヌルポインタが返される。 要求した大きさが 0 の場合は、ヌルポインタが返されるか、何らかの有効なメモリアドレスが返されるかのいずれかである。後者の場合は、そのメモリアドレスを参照してはならない。 |
|
詳細 |
確保された領域の各バイトは 0 で初期化される。 確保された領域が不要になったら、free関数で解放(システムへ返却)できる。 ちなみに、calloc の ‘c’ は Cell(区画)から来ている。 |
|
注意 |
システムがメモリ領域を管理するための追加の領域が必要なため、実際に割り当てられる大きさは、size を超える可能性がある。 割り当てられた領域の各バイトは 0 で初期化されているが、すべての型にとって、0 が初期値として適切であるとは限らない。たとえば、浮動小数点数において、0 というビットが並んだ状態が、0.0 を表現しているかどうかは、その環境での浮動小数点数の表現の仕方による。 |
|
使用例 |
実行結果:
|
|
関連 | realloc関数は領域の再確保を行う。また、0 による初期化を行わない malloc関数がある。 | |
解説章 |
本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place
管理者に紹介料が支払われています。
()
の前後の空白の空け方)(
の直後、)
の直前に空白を入れない)return 0;
を削除(C言語編全体でのコードの統一)「NULL」という表記を「ヌルポインタ」に修正。
全体的に表現を修正。
使用例の中で、記号定数名が間違っていてコンパイルできなかったのを修正。
説明文についても、全体的に見直した(主に、関連する関数の内容との整合性の調整)
新規作成。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |