C言語のcalloc():ゼロ初期化メモリ割り当てと実践例
C言語のcallocとは
calloc()関数は、同サイズの複数メモリブロックを割り当て、全バイトをゼロで初期化します。配列や構造体などの複雑なデータ構造に用いられる動的割り当てルーチンで、void *ポインタを返します。
malloc()が単一の連続ブロックを確保するのに対し、calloc()はn個のブロック(各sizeバイト)を要求し、それらがゼロ初期化かつ連続していることを保証します。
構文
ptr = (cast_type *)calloc(n, size);
n個のブロック、各sizeバイトを要求- 全バイトが自動的にゼロに設定される
- 割り当て領域の先頭バイトへのポインタを返し、失敗時は
NULL
callocの使用例 — サンプルプログラム
以下のプログラムは、calloc()を用いて等差数列の最初の10項の和を計算する方法を示します。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *ptr, sum = 0;
ptr = calloc(10, sizeof(int));
if (!ptr) {
fprintf(stderr, "Error! Memory not allocated.\n");
return EXIT_FAILURE;
}
printf("Calculating the sum of the first 10 terms:\n");
for (int i = 0; i < 10; ++i) {
ptr[i] = i;
sum += ptr[i];
}
printf("Sum = %d\n", sum);
free(ptr);
return EXIT_SUCCESS;
}
出力
Calculating the sum of the first 10 terms: Sum = 45
C言語
- ハース CNC M97 ローカルサブプログラム呼出しをマスター:ステップバイステップ例題
- CNCプログラミング基礎:ステップバイステップ チュートリアル & サンプルコード
- C++構造体を実例で徹底解説
- C++ std::map完全ガイド:連想配列の実践的活用とコード例
- C++のstd::listをマスターする:構文、関数、実践例
- C++関数を実例で徹底解説:基本から応用まで
- C言語のrealloc()活用ガイド:構文、ベストプラクティス、実例
- C言語free()関数完全マスター:実践ガイドと例
- Python strip()メソッド完全ガイド:実践例付き
- Javaで挿入ソート:わかりやすい例とステップバイステップガイド
- Javaで選択ソート:ステップバイステップ例と完全コード