指定したバイト数を指定した個数分、メモリを確保する関数としてcallocがあります。
mallocとの違いは、個数指定の部分のあるかないかの違いがあります。
以下にC言語サンプルソースを記します。
以下にcallocの書式などについて記します。
#include <stdlib.h>
void *calloc(size_t n, size_t size);
以下にcallocを使用したCサンプルソースと実行結果を記します。
calloc.c (改行コードLF)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *p;
int i;
p = calloc(10,sizeof(int));
if (p == NULL) {
perror("calloc() error!");
exit(EXIT_FAILURE);
}
for (i=0; i<10; i++) {
p[i] = i;
printf("p[%d] = %d\n", i, p[i]);
}
if (p != NULL) {
free(p);
p = NULL;
}
return 0;
}
コンパイルし実行した結果を以下に記します。
$ gcc calloc.c -o calloc $ ./calloc p[0] = 0 p[1] = 1 p[2] = 2 p[3] = 3 p[4] = 4 p[5] = 5 p[6] = 6 p[7] = 7 p[8] = 8 p[9] = 9
以上、callocのサンプルソースでした。