calloc
指定バイト分メモリ領域をn個分確保する
【書式】
#include <stdlib.h>
void *calloc(size_t n, size_t size);
【説明】
ヒープメモリから size バイトのブロックを n個割り当てます。確保されたブロックは
0 クリアされます。
この関数を使うことにより、プログラムで予め配列などを使ってメモリを確保せずに、必要な場所で必要なだけメモリを確保することが出来ます。
calloc関数で確保したメモリは、使用後、必ず free関数で解放してください。
【引数】
size_t size : 確保したいメモリのバイトサイズ
size_t は stdlib.h の中でtypedefされ、一般にunsignedです。
【戻り値】
成功時 : 確保したメモリブロックを指すポインタ (void
*についてはmalloc関数参照)
失敗時 : NULL (メモリ不足により指定サイズ分のメモリが確保できないとき)
【使用例】
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *ptr,*p;
int i;
/* 500個のintサイズのメモリを確保 */
ptr = (int *)calloc(500,sizeof(int));
if(ptr == NULL) {
printf("メモリが確保できません\n");
exit(EXIT_FAILURE);
}
p = ptr;
for (i=0; i<500; i++) {
*p = i;
printf("%d ",*p);
p++;
}
/* メモリの開放 */
free(ptr);
return 0;
}
「初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved