Calloc trong C là gì?
Các calloc () trong C là một hàm sử dụng để phân bổ nhiều khối bộ nhớ có cùng kích thước. Nó là một chức năng cấp phát 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 cho bộ nhớ. Calloc là viết tắt của phân bổ liền kề.
Hàm Malloc được sử dụng để cấp phát một khối không gian bộ nhớ trong khi hàm calloc trong C được sử dụng để cấp phát 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.
Cú pháp calloc ():
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 cấp phát, thì tất cả các byte được khởi tạo bằng 0.
- Con trỏ hiện đang ở byte đầu tiên của không gian bộ nhớ được cấp phát đượ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ì con trỏ null được trả về như trong ví dụ calloc dưới đây.
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.
#includeint 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 termsSum = 45