😸

[C] calloc 関数

に公開

機能

動的にメモリ領域を確保し、すべてのバイトを0で初期化する関数[1]

使用例

整数10個分の配列をcallocで確保 と表示する

\n は改行を表す エスケープシーケンス[2]

コード

int* arr = (int*)calloc(10, sizeof(int));
if (arr != NULL) {
    printf("整数10個分の配列をcallocで確保\n");
    free(arr);
}
全文
#include <stdio.h>
#include <stdlib.h>
void main() {
    int* arr = (int*)calloc(10, sizeof(int));
    if (arr != NULL) {
        printf("整数10個分の配列をcallocで確保\n");
        free(arr);
    }
}

実行結果

整数10個分の配列をcallocで確保

callocで確保した初期値を表示 を変数から表示する

コード

int* arr = (int*)calloc(5, sizeof(int));
if (arr != NULL) {
    printf("%d %d %d\n", arr[0], arr[1], arr[2]);
    free(arr);
}
全文
#include <stdio.h>
#include <stdlib.h>
void main() {
    int* arr = (int*)calloc(5, sizeof(int));
    if (arr != NULL) {
        printf("%d %d %d\n", arr[0], arr[1], arr[2]);
        free(arr);
    }
}

実行結果

0 0 0
脚注
  1. callocは「contiguous allocation」の略で、配列など連続したメモリ領域を必要な個数分まとめて確保できる。 ↩︎

  2. 改行やタブなど、画面に表示されない制御文字のこと。 ↩︎

Discussion