ความแตกต่างที่สำคัญ: 'Calloc' และ 'Malloc' หมายถึงประสิทธิภาพของการจัดสรรหน่วยความจำแบบไดนามิกในภาษา C A 'calloc' เริ่มต้นหน่วยความจำที่จัดสรรด้วยศูนย์ในขณะที่ 'malloc' ไม่ได้
ทั้ง 'calloc' และ 'malloc' เป็นฟังก์ชันไลบรารีมาตรฐาน

ไวยากรณ์ของมันเป็นดังนี้:
เป็นโมฆะ * calloc (number_of_blocks, size_of_each_block_in_bytes);
ที่นี่ 'void' เป็นฟังก์ชั่น C ทั่วไปซึ่งจะไม่ส่งคืนค่าใด ๆ จำนวนองค์ประกอบในอาร์กิวเมนต์แรกระบุขนาดเป็นไบต์ขององค์ประกอบหนึ่งไปยังอาร์กิวเมนต์ที่สอง ที่อยู่จะถูกส่งคืนหลังจากการแบ่งพาร์ติชันสำเร็จมิฉะนั้นจะส่งคืนค่า NULL จากความล้มเหลวของฟังก์ชัน

ไวยากรณ์ของมันเป็นดังนี้:
เป็นโมฆะ * malloc (size_in_bytes);
มันจะส่งคืนที่อยู่ในลักษณะทั่วไป (เป็นโมฆะ *) หาก 'malloc' ไม่สามารถจัดสรรหน่วยความจำได้ก็จะส่งกลับค่า -1 มิฉะนั้นจะส่งคืนที่อยู่ที่จัดสรรหน่วยความจำ หน่วยความจำที่จัดสรรสามารถอยู่ในรูปแบบของจำนวนเต็มโดยการพิมพ์ที่อยู่โมฆะเป็น int *; หน่วยความจำที่จัดสรรยังสามารถอยู่ในรูปแบบของการลอยเพียงแค่พิมพ์หล่อโมฆะที่อยู่เดียวกันเป็นลอย *
การเปรียบเทียบระหว่าง Calloc และ Malloc:
calloc | malloc | |
ฟังก์ชั่นพื้นฐาน | ฟังก์ชั่นห้องสมุดจัดสรรพื้นที่ของหน่วยความจำซึ่งมีขนาดใหญ่พอที่จะเก็บ "n องค์ประกอบ" ของ "ขนาด" ไบต์แต่ละ | ฟังก์ชันไลบรารีจัดสรรหน่วยความจำ“ ขนาด” เท่านั้น |
การเริ่มต้น | มันเริ่มต้นเนื้อหาของหน่วยความจำเพื่อศูนย์ | มันไม่ได้เริ่มต้นเนื้อหาของหน่วยความจำเพื่อศูนย์ |
จำนวนอาร์กิวเมนต์ | ที่นี่มีสองข้อโต้แย้ง | ที่นี่มีเพียงหนึ่งข้อโต้แย้ง |
ค่าที่จัดสรร | เขตที่จัดสรรถูกเตรียมใช้งานเป็นศูนย์ | เนื้อหาของหน่วยความจำที่จัดสรรจะไม่เปลี่ยนแปลงนั่นคือหน่วยความจำมีค่าที่ไม่แน่นอนหรือขยะซึ่งสร้างความเสี่ยง |
ส่งคืนค่า | ตัวชี้เป็นโมฆะ (เป็นโมฆะ *) หลังจากการจัดสรรสำเร็จตัวชี้ไปยังบล็อกของหน่วยความจำจะถูกส่งคืน | ตัวชี้เป็นโมฆะ (เป็นโมฆะ *) หลังจากการจัดสรรสำเร็จตัวชี้ไปยังบล็อกของหน่วยความจำจะถูกส่งคืน |