วีดีโอ: ฮีปอยู่ที่ไหนในแมปหน่วยความจำของเครื่อง
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
ที่อยู่ที่สูงขึ้นคือ ซ้อนกัน และที่อยู่ด้านล่างคือ กอง . ทั้งสอง หน่วยความจำ ขอบเขตการจัดสรรจะเติบโตตรงกลางของพื้นที่ที่อยู่ ซึ่งไม่ได้ใช้และไม่ได้ถูกจัดสรร
นอกจากนี้ฮีปอยู่ที่ไหนในหน่วยความจำ?
ซ้อนกัน ใช้สำหรับ static หน่วยความจำ การจัดสรรและ กอง สำหรับไดนามิก หน่วยความจำ การจัดสรรทั้งที่เก็บไว้ในคอมพิวเตอร์ แกะ . ตัวแปรที่จัดสรรบน กองเป็น จัดเก็บโดยตรงไปยัง หน่วยความจำ และเข้าถึงสิ่งนี้ หน่วยความจำ รวดเร็วมาก และการจัดสรรจะได้รับการจัดการเมื่อคอมไพล์โปรแกรม
นอกจากนี้หน่วยความจำฮีปคืออะไร? NS กองหน่วยความจำ เป็นสถานที่ใน หน่วยความจำ ที่ไหน หน่วยความจำ อาจถูกจัดสรรโดยการเข้าถึงแบบสุ่ม ไม่เหมือนกองที่ไหน หน่วยความจำ ได้รับการจัดสรรและเผยแพร่ในลำดับที่กำหนดไว้อย่างชัดเจน องค์ประกอบข้อมูลแต่ละส่วนถูกจัดสรรบน กอง มักจะถูกปล่อยออกมาในลักษณะที่ไม่ตรงกันจากที่อื่น
คำถามก็คือ ฮีปอยู่ที่ไหนในความทรงจำ และเติบโตไปในทิศทางใด
NS กอง เป็นส่วนที่ไดนามิก หน่วยความจำ การจัดสรรมักจะเกิดขึ้น พื้นที่นี้มักเริ่มต้นที่ส่วนท้ายของส่วน BSS และ เติบโต ขึ้นไปที่สูงขึ้น หน่วยความจำ ที่อยู่ ใน C นั้นจัดการโดย malloc / new, free / delete ซึ่งใช้การเรียกระบบ brk และ sbrk เพื่อปรับขนาด
malloc ได้หน่วยความจำมาจากไหน?
ใน C ไดนามิก หน่วยความจำ ถูกจัดสรรจากฮีปโดยใช้ฟังก์ชันไลบรารีมาตรฐานบางอย่าง ไดนามิกสองคีย์ หน่วยความจำ หน้าที่คือ malloc () และฟรี () NS malloc () ฟังก์ชั่นรับพารามิเตอร์เดียวซึ่งเป็นขนาดของการร้องขอ หน่วยความจำ พื้นที่เป็นไบต์ ส่งคืนตัวชี้ไปยังการจัดสรร หน่วยความจำ.