TOP - C言語 - stdlib.h - calloc()

指定したバイト数のメモリを指定した個数分確保して、確保されたメモリを参照するポインタを返します。

戻り値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


Copyright(C) 2006-2012 CLAYPOT. All Rights Reserved.