Last Update 2012/07/05
指定したバイト数のメモリを指定した個数分確保して、確保されたメモリを参照するポインタを返します。
戻り値1 = calloc( 引数1 , 引数2 )
戻り値1 :
void *
成功
確保されたメモリを参照するポインタ
失敗
NULL
引数1 :
size_t
引数2で指定したサイズのメモリを確保する個数
引数2 :
size_t
確保するメモリの一つあたりのサイズ
(例)
#include <stdio.h>
#include <stdlib.h>
struct struct_test
{
char str1[10];
char str2[20];
};
int main()
{
int i;
struct struct_test *pst = (struct struct_test *)calloc(10, sizeof(struct struct_test));
if (pst != NULL)
{
for (i=0; i<5; i++)
{
sprintf((pst+i)->str1, "str1:%d", i);
sprintf((pst+i)->str2, "str2:%d", i);
}
for (i=0; i<5; i++)
{
printf("str1[%d] -> %s\n", i, (pst+i)->str1);
printf("str2[%d] -> %s\n\n", i, (pst+i)->str2);
}
free(pst);
}
else
{
printf("確保失敗\n");
}
return 0;
}
実行結果
str1[0] -> str1:0
str2[0] -> str2:0
str1[1] -> str1:1
str2[1] -> str2:1
str1[2] -> str1:2
str2[2] -> str2:2
str1[3] -> str1:3
str2[3] -> str2:3
str1[4] -> str1:4
str2[4] -> str2:4