ฟังก์ชัน 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