Logo th.boatexistence.com

ที่ malloc จัดสรรหน่วยความจำที่ไหน?

สารบัญ:

ที่ malloc จัดสรรหน่วยความจำที่ไหน?
ที่ malloc จัดสรรหน่วยความจำที่ไหน?
Anonim

โดยปกติ malloc จะจัดสรรหน่วยความจำจาก the heap และปรับขนาดของฮีปตามต้องการ โดยใช้ sbrk(2) เมื่อจัดสรรบล็อกของหน่วยความจำที่มีขนาดใหญ่กว่า MMAP_THRESHOLD ไบต์ การนำ glibc malloc ไปใช้จะจัดสรรหน่วยความจำเป็นการแมปที่ไม่ระบุชื่อส่วนตัวโดยใช้ mmap(2)

หน่วยความจำ malloc ถูกจัดสรรที่ไหน

ในภาษา C ฟังก์ชันไลบรารี malloc ใช้เพื่อจัดสรรบล็อกของหน่วยความจำใน the heap โปรแกรมเข้าถึงบล็อกของหน่วยความจำนี้ผ่านตัวชี้ที่ malloc ส่งคืน เมื่อไม่จำเป็นต้องใช้หน่วยความจำอีกต่อไป ตัวชี้จะถูกส่งไปยังพื้นที่ว่างซึ่งจะจัดสรรหน่วยความจำเพื่อนำไปใช้เพื่อวัตถุประสงค์อื่น

malloc และ calloc จัดสรรหน่วยความจำในส่วนใด

ชื่อ malloc และ calloc เป็นฟังก์ชันไลบรารีที่จัดสรรหน่วยความจำแบบไดนามิก หมายความว่ามีการจัดสรรหน่วยความจำระหว่างรันไทม์ (การทำงานของโปรแกรม) จาก ส่วนฮีป.

หน่วยความจำที่จัดสรรอยู่ที่ไหน

กอง. ฮีปคือส่วนของหน่วยความจำคอมพิวเตอร์ที่จัดสรรให้กับแอปพลิเคชันที่ทำงานอยู่ โดยสามารถจัดสรรหน่วยความจำสำหรับตัวแปร อินสแตนซ์ของคลาส ฯลฯ จากฮีปของโปรแกรม ระบบปฏิบัติการจะจัดสรรหน่วยความจำสำหรับการใช้แบบไดนามิก

หน่วยความจำที่จัดสรรแบบคงที่อยู่ที่ไหน

เมื่อโหลดโปรแกรม (ปฏิบัติการหรือไลบรารี) ลงในหน่วยความจำ ตัวแปรสแตติกจะถูกเก็บไว้ใน ส่วนข้อมูลของพื้นที่ที่อยู่ของโปรแกรม (หากเริ่มต้น) หรือส่วน BSS (ถ้าไม่ได้กำหนดค่าเริ่มต้น) และจะถูกเก็บไว้ในส่วนที่เกี่ยวข้องของไฟล์อ็อบเจ็กต์ก่อนที่จะโหลด

แนะนำ: