ฮีปอยู่ที่ไหนในแมปหน่วยความจำของเครื่อง
ฮีปอยู่ที่ไหนในแมปหน่วยความจำของเครื่อง

วีดีโอ: ฮีปอยู่ที่ไหนในแมปหน่วยความจำของเครื่อง

วีดีโอ: ฮีปอยู่ที่ไหนในแมปหน่วยความจำของเครื่อง
วีดีโอ: ใช้มือถือ"เช็คแฟน" อยู่ที่ไหน ทำอะไร ไปยังไง ถ่ายรูปอะไร? ง่ายๆด้วยแอปแผนที่ 2024, พฤศจิกายน
Anonim

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

นอกจากนี้ฮีปอยู่ที่ไหนในหน่วยความจำ?

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

นอกจากนี้หน่วยความจำฮีปคืออะไร? NS กองหน่วยความจำ เป็นสถานที่ใน หน่วยความจำ ที่ไหน หน่วยความจำ อาจถูกจัดสรรโดยการเข้าถึงแบบสุ่ม ไม่เหมือนกองที่ไหน หน่วยความจำ ได้รับการจัดสรรและเผยแพร่ในลำดับที่กำหนดไว้อย่างชัดเจน องค์ประกอบข้อมูลแต่ละส่วนถูกจัดสรรบน กอง มักจะถูกปล่อยออกมาในลักษณะที่ไม่ตรงกันจากที่อื่น

คำถามก็คือ ฮีปอยู่ที่ไหนในความทรงจำ และเติบโตไปในทิศทางใด

NS กอง เป็นส่วนที่ไดนามิก หน่วยความจำ การจัดสรรมักจะเกิดขึ้น พื้นที่นี้มักเริ่มต้นที่ส่วนท้ายของส่วน BSS และ เติบโต ขึ้นไปที่สูงขึ้น หน่วยความจำ ที่อยู่ ใน C นั้นจัดการโดย malloc / new, free / delete ซึ่งใช้การเรียกระบบ brk และ sbrk เพื่อปรับขนาด

malloc ได้หน่วยความจำมาจากไหน?

ใน C ไดนามิก หน่วยความจำ ถูกจัดสรรจากฮีปโดยใช้ฟังก์ชันไลบรารีมาตรฐานบางอย่าง ไดนามิกสองคีย์ หน่วยความจำ หน้าที่คือ malloc () และฟรี () NS malloc () ฟังก์ชั่นรับพารามิเตอร์เดียวซึ่งเป็นขนาดของการร้องขอ หน่วยความจำ พื้นที่เป็นไบต์ ส่งคืนตัวชี้ไปยังการจัดสรร หน่วยความจำ.