Hàm calloc() trong C

Hàm void *calloc(so-phan-tu, kich-co-phan-tu) cấp phát bộ nhớ được yêu cầu và trả về một con trỏ tới nó. Điểm khác nhau giữa malloc và calloc là: malloc không thiết lập bộ nhớ về 0 trong khi calloc thiết lập bộ nhớ đã cấp phát về 0.

Khai báo hàm calloc() trong C

Dưới đây là phần khai báo cho calloc() trong C:

void *calloc(so-phan-tu, kich-co-phan-tu)

Tham số

so-phan-tu: Đây là số phần tử để được cấp phát.

kich-co-phan-tu: Đây là kích cỡ của phần tử.

Trả về giá trị

Hàm này trả về một con trỏ tới bộ nhớ đã cấp phát, hoặc trả về NULL nếu yêu cầu thất bại.

Ví dụ

Chương trình C sau minh họa cách sử dụng của calloc() trong C:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int i, n;
   int *a;

   printf("Nhap so phan tu: \n");
   scanf("%d",&n);

   a = (int*)calloc(n, sizeof(int));
   printf("Nhap %d so: \n",n);
   for( i=0 ; i < n ; i++ ) 
   {
      scanf("%d",&a[i]);
   }

   printf("Cac so vua nhap la: \n");
   for( i=0 ; i < n ; i++ ) 
   {
      printf("%d ",a[i]);
   }
   
   return(0);
}

Biên dịch và chạy chương trình C trên sẽ cho kết quả: