1. Định nghĩa hàm calloc() trong C

Hàm calloc() trong C được sử dụng để cấp phát bộ nhớ được yêu cầu và trả về một con trỏ tới nó. Giá trị các phần tử trong mảng sau khi cấp phát được mặc định là 0. Để khai báo hàm calloc() trong C, ta sẽ cần sử dụng cú pháp như sau:

void *calloc (size_t num, size_t type);

Tham số:

  • Num: là số lượng phần tử của mảng.
  • Type: là kiểu dữ liệu của giá trị mà mảng đó chứa.

Lưu ý:

  • Hàm calloc() sẽ trả về con trỏ rỗng void nếu cấp phát bộ nhớ thành công.
  • Hàm calloc() sẽ trả về con trỏ NULL nếu cấp phát bộ nhớ không thành công.

2. Ví dụ về hàm calloc() trong C

Ví dụ dưới đây, minh họa lại việc sử dụng hàm calloc() trong C để cấp phát bộ nhớ được yêu cầu và trả về một con trỏ tới nó.

#include<iostream>
#include<stdlib.h> 

using namespace std;

main()
{
    int *ptr, *ptr2; //Ptr dung de cap phat bo nho va ghi du lieu
     //ptr2 dung de hien thi du lieu
    
    int num, sum=0; //num=so phan tu, sum=tong so can hien thi.
    
    cout<<"Nhap so phan tu can luu tru"<<endl;
    cout<<"Nhap so phan tu: ";
    cin>>num;
    
    ptr=(int*)calloc(num , sizeof(int));
    ptr=ptr2;
    cout<<" \n Nhap "<<num<<" phan tu can luu tru: "<<endl;
    for(int i=1; i<=num; i++)
    {
        cout<<" Phan tu so "<<i<<": ";
        cin>>*ptr;
        sum+=*ptr; //them vao cac so da nhap
        ptr++;
    }
    
    cout<<"\n\n So phan tu cua ban la: "<<endl;
    for(int i=1; i<=num; i++)
    {
        cout<<" Phan tu so "<<i<<": ";
        cout<<*ptr2<<endl;
        *ptr2++;
    }
     cout<<" Tong la: "<<sum;
    
    return 0;
    
}

Kết quả:

Nhap so phan tu can luu tru
Nhap so phan tu: 3

Nhap 3 phan tu can luu tru:
Phan tu so 1: 1
Phan tu so 2: 2
Phan tu so 3: 3

So phan tu cua ban la:
Phan tu so 1: 1
Phan tu so 2: 2
Phan tu so 3: 3
Tong la: 6