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;
}

戻る


banner
初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved