ฟังก์ชัน calloc() ในไลบรารี C พร้อมตัวอย่างโปรแกรม
calloc ใน C คืออะไร?
การขอ การโทร () ในภาษา C เป็นฟังก์ชันที่ใช้จัดสรรหน่วยความจำหลายบล็อกที่มีขนาดเท่ากัน เป็นฟังก์ชันการจัดสรรหน่วยความจำแบบไดนามิกที่จัดสรรพื้นที่หน่วยความจำให้กับโครงสร้างข้อมูลที่ซับซ้อน เช่น อาร์เรย์และโครงสร้าง และส่งคืนตัวชี้ว่างไปยังหน่วยความจำ Calloc ย่อมาจากการจัดสรรแบบต่อเนื่อง
ฟังก์ชันมัลลอค ใช้เพื่อจัดสรรพื้นที่หน่วยความจำบล็อกเดียวในขณะที่ฟังก์ชัน calloc ใน C ใช้เพื่อจัดสรรพื้นที่หน่วยความจำหลายบล็อก แต่ละบล็อกที่จัดสรรโดย calloc ในการเขียนโปรแกรม C มีขนาดเท่ากัน
calloc() ไวยากรณ์:
ptr = (cast_type *) calloc (n, size);
- ตัวอย่างคำสั่งข้างต้นของ calloc ในภาษา C ใช้ในการจัดสรรบล็อกหน่วยความจำ n ขนาดเท่ากัน
- หลังจากจัดสรรพื้นที่หน่วยความจำแล้ว ไบต์ทั้งหมดจะถูกเตรียมใช้งานให้เป็นศูนย์
- การขอ ตัวชี้ ซึ่งปัจจุบันอยู่ที่ไบต์แรกของพื้นที่หน่วยความจำที่จัดสรรจะถูกส่งกลับ
เมื่อใดก็ตามที่มีข้อผิดพลาดในการจัดสรรพื้นที่หน่วยความจำ เช่น หน่วยความจำไม่เพียงพอ ตัวชี้ null จะถูกส่งกลับดังแสดงในตัวอย่าง calloc ด้านล่าง
วิธีการใช้งาน calloc
โปรแกรม calloc ด้านล่างในภาษา 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;
}
ผลลัพธ์ของ calloc ในตัวอย่าง C:
Building and calculating the sequence sum of the first 10 terms Sum = 45
