Malloc vs. Calloc

ผู้เขียน: Laura McKinney
วันที่สร้าง: 4 เมษายน 2021
วันที่อัปเดต: 9 พฤษภาคม 2024
Anonim
Calloc vs malloc | GeeksforGeeks
วิดีโอ: Calloc vs malloc | GeeksforGeeks

เนื้อหา

ความแตกต่างที่สำคัญระหว่าง malloc และ calloc คือ malloc จะกำหนดหน่วยความจำที่ร้องขอเพียงหนึ่งบล็อกเท่านั้นส่วน calloc จะกำหนดหน่วยความจำที่ร้องขอหลายบล็อก


การจัดสรรหน่วยความจำเป็นแนวคิดที่สำคัญมากในวิทยาการคอมพิวเตอร์ในการเขียนโปรแกรมคอมพิวเตอร์คุณต้องสร้างหน่วยความจำสำหรับรหัสของคุณ Malloc และ calloc ต้องการอาร์กิวเมนต์สำหรับการทำงาน Malloc ต้องการเพียงอาร์กิวเมนต์เดียวในขณะที่ calloc ต้องการสองอาร์กิวเมนต์ Malloc และ calloc ใช้สำหรับการเขียนโปรแกรม C และใช้สำหรับการจัดสรรหน่วยความจำและการจัดสรร การจัดสรรหน่วยความจำแบบไดนามิกเป็นแนวคิดที่สำคัญที่สุดในการเขียนโปรแกรมคอมพิวเตอร์ คุณต้องกำหนดหน่วยความจำในคอมพิวเตอร์ก่อนที่จะเขียนโปรแกรมหน่วยความจำนั้นใช้สำหรับการดำเนินการ

Malloc เป็นฟังก์ชันที่ใช้เพื่อกำหนดบล็อกหน่วยความจำเป็นไบต์ ขนาดของบล็อกนั้นขึ้นอยู่กับการตัดสินใจของผู้ใช้และการกำหนดขนาดของบล็อกหน่วยความจำมีความสำคัญมากก่อนที่จะเขียนรหัส การจัดสรรหน่วยความจำถูกกำหนดโดย RAM ดังนั้นเมื่อโปรแกรมมันขอ RAM สำหรับการจัดสรรหน่วยความจำ เมื่อคุณทำการร้องขอและคำขอนั้นได้รับการยอมรับมากกว่าฟังก์ชั่น malloc ว่ากันว่าจะประสบความสำเร็จและจัดสรรหน่วยความจำ ถ้าฟังก์ชัน malloc ไม่สามารถกำหนดหน่วยความจำได้ดังนั้น NULL จะส่งคืน การทำงานของฟังก์ชั่น malloc นั้นคล้ายกับฟังก์ชั่น calloc มากเพราะฟังก์ชั่นทั้งสองนี้จะทำการจัดสรรหน่วยความจำ Calloc ใช้สองอาร์กิวเมนต์สำหรับคำขอหน่วยความจำ ใน calloc เราต้องกำหนดขนาดของชนิดข้อมูล สอง arugemnts ใน calloc จะถูกคั่นด้วยเครื่องหมายจุลภาค


สารบัญ: ความแตกต่างระหว่าง Malloc และ Calloc

  • แผนภูมิเปรียบเทียบ
  • malloc
  • calloc
  • ความแตกต่างที่สำคัญ
  • ข้อสรุป
  • วิดีโออธิบาย

แผนภูมิเปรียบเทียบ

รากฐานmalloccalloc
ความหมายmalloc กำหนดบล็อกเดียวของหน่วยความจำที่ร้องขอเท่านั้น

calloc เพื่อกำหนดบล็อกหน่วยความจำที่ร้องขอหลายบล็อก

 

วากยสัมพันธ์

ไวยากรณ์ของ malloc คือ

เป็นโมฆะ * malloc (ขนาด size_t);

ไวยากรณ์ของ calloc คือ

เป็นโมฆะ * calloc (size_t NUM ขนาด size_t);

ความเร็วMalloc เร็วกว่า callocCalloc นั้นช้ากว่า malloc
การเริ่มต้น malloc () ไม่ได้ล้างและเตรียมใช้งานหน่วยความจำที่จัดสรรไว้หน่วยความจำที่จัดสรรถูกเตรียมใช้งานเป็นศูนย์โดยใช้ calloc ()

malloc

Malloc เป็นฟังก์ชันที่ใช้เพื่อกำหนดบล็อกหน่วยความจำเป็นไบต์ ขนาดของบล็อกนั้นขึ้นอยู่กับการตัดสินใจของผู้ใช้และการกำหนดขนาดของบล็อกหน่วยความจำมีความสำคัญมากก่อนที่จะเขียนรหัส การจัดสรรหน่วยความจำถูกกำหนดโดย RAM ดังนั้นเมื่อโปรแกรมมันขอ RAM สำหรับการจัดสรรหน่วยความจำ เมื่อคุณทำการร้องขอและคำขอนั้นได้รับการยอมรับมากกว่าฟังก์ชั่น malloc ว่ากันว่าจะประสบความสำเร็จและจัดสรรหน่วยความจำ หากฟังก์ชัน malloc ไม่สามารถกำหนดหน่วยความจำได้ดังนั้น NULL จะถูกส่งคืน


calloc

การทำงานของฟังก์ชั่น malloc นั้นคล้ายกับฟังก์ชั่น calloc มากเพราะฟังก์ชั่นทั้งสองนี้จะทำการจัดสรรหน่วยความจำ Calloc ใช้สองอาร์กิวเมนต์สำหรับคำขอหน่วยความจำ ใน calloc เราต้องกำหนดขนาดของชนิดข้อมูล สอง arugemnts ใน calloc จะถูกคั่นด้วยเครื่องหมายจุลภาค

ความแตกต่างที่สำคัญ

  1. Malloc กำหนดบล็อกหน่วยความจำที่ร้องขอเพียงบล็อกเดียวในขณะที่ calloc กำหนดบล็อกหน่วยความจำที่ร้องขอหลายบล็อก
  2. ไวยากรณ์ของ malloc คือ: void * malloc (size_t size); ในขณะที่ไวยากรณ์ของ calloc เป็นโมฆะ * calloc (size_t NUM ขนาด size_t);
  3. Malloc นั้นเร็วกว่า calloc ในขณะที่ Calloc นั้นช้ากว่า malloc
  4. malloc () ไม่ได้ล้างข้อมูลและเตรียมใช้งานหน่วยความจำที่จัดสรรในขณะที่หน่วยความจำที่จัดสรรไว้จะเริ่มต้นเป็นศูนย์โดยใช้ calloc ()

ข้อสรุป

ในบทความข้างต้นเราเห็นความแตกต่างที่ชัดเจนระหว่าง malloc และ calloc และการใช้งาน

วิดีโออธิบาย