Hàm calloc() trong Thư viện C với chương trình VÍ DỤ

Calloc trong C là gì?

Sản phẩm calloc () trong C là một hàm được sử dụng để phân bổ nhiều khối bộ nhớ có cùng kích thước. Đây là một hàm phân bổ bộ nhớ động phân bổ không gian bộ nhớ cho các cấu trúc dữ liệu phức tạp như mảng và cấu trúc và trả về một con trỏ void đến bộ nhớ. Calloc là viết tắt của phân bổ liên tiếp.

Hàm Malloc được sử dụng để phân bổ một khối không gian bộ nhớ trong khi hàm calloc trong C được sử dụng để phân bổ nhiều khối không gian bộ nhớ. Mỗi khối được phân bổ bởi calloc trong lập trình C có cùng kích thước.

calloc() Cú pháp:

ptr = (cast_type *) calloc (n, size);
  • Ví dụ câu lệnh trên của calloc trong C được sử dụng để cấp phát n khối bộ nhớ có cùng kích thước.
  • Sau khi không gian bộ nhớ được phân bổ, tất cả các byte được khởi tạo về 0.
  • Sản phẩm con trỏ hiện đang ở byte đầu tiên của không gian bộ nhớ được phân bổ sẽ được trả về.

Bất cứ khi nào có lỗi phân bổ không gian bộ nhớ, chẳng hạn như thiếu bộ nhớ, thì một con trỏ null sẽ được trả về như trong ví dụ calloc bên dưới.

Cách sử dụng calloc

Chương trình calloc dưới đây trong C tính tổng của một dãy số học.

#include <stdio.h>
    int main() {
        int i, * ptr, sum = 0;
        ptr = calloc(10, sizeof(int));
        if (ptr == NULL) {
            printf("Error! memory not allocated.");
            exit(0);
        }
        printf("Building and calculating the sequence sum of the first 10 terms \ n ");
        for (i = 0; i < 10; ++i) { * (ptr + i) = i;
            sum += * (ptr + i);
        }
        printf("Sum = %d", sum);
        free(ptr);
        return 0;
    }

Kết quả của calloc trong ví dụ C:

 
Building and calculating the sequence sum of the first 10 terms
Sum = 45