ทำความเข้าใจการจัดสรรในวิทยาการคอมพิวเตอร์และการเขียนโปรแกรม
ในบริบทของวิทยาการคอมพิวเตอร์และการเขียนโปรแกรม การจัดสรรหมายถึงกระบวนการกำหนดพื้นที่หน่วยความจำให้กับตัวแปรหรืออ็อบเจ็กต์ในโปรแกรม เมื่อสร้างตัวแปรหรืออ็อบเจ็กต์ ต้องใช้หน่วยความจำจำนวนหนึ่งเพื่อจัดเก็บข้อมูล การจัดสรรเกี่ยวข้องกับการจัดสรรพื้นที่หน่วยความจำสำหรับตัวแปรหรืออ็อบเจ็กต์ที่จะใช้ ตัวอย่างเช่น หากคุณสร้างอาร์เรย์ของจำนวนเต็มในโปรแกรมของคุณ ตัวจัดสรรหน่วยความจำ (ซึ่งโดยทั่วไปจะเป็นส่วนหนึ่งของระบบปฏิบัติการ) จะจัดสรรบล็อกหน่วยความจำที่ต่อเนื่องกันให้กับ เก็บจำนวนเต็มทั้งหมดไว้ในอาร์เรย์ จำนวนเต็มแต่ละตัวจะมีช่องของตัวเองภายในบล็อกหน่วยความจำนั้น และขนาดของบล็อกจะขึ้นอยู่กับจำนวนเต็มที่คุณต้องการเก็บไว้ในอาร์เรย์
มีการจัดสรรหลายประเภท รวมถึง:
1 การจัดสรรสแต็ก: นี่คือกระบวนการจัดสรรหน่วยความจำสำหรับตัวแปรหรืออ็อบเจ็กต์บนสแต็ก ซึ่งเป็นขอบเขตของหน่วยความจำที่ใช้สำหรับการจัดเก็บชั่วคราว ตัวแปรและอ็อบเจ็กต์ที่จัดสรรบนสแต็กโดยทั่วไปจะมีขนาดเล็กและมีอายุสั้น
2 การจัดสรรฮีป: นี่คือกระบวนการจัดสรรหน่วยความจำสำหรับตัวแปรหรืออ็อบเจ็กต์บนฮีป ซึ่งเป็นขอบเขตของหน่วยความจำที่ใช้สำหรับการจัดเก็บข้อมูลระยะยาว โดยทั่วไปแล้วตัวแปรและอ็อบเจ็กต์ที่จัดสรรบนฮีปจะมีขนาดใหญ่และมีอายุการใช้งานยาวนาน
3 การจัดสรรแบบไดนามิก: นี่คือกระบวนการจัดสรรหน่วยความจำสำหรับตัวแปรหรืออ็อบเจ็กต์ ณ รันไทม์ แทนที่จะเป็นเวลาคอมไพล์ สิ่งนี้ทำให้มีความยืดหยุ่นมากขึ้นในแง่ของจำนวนหน่วยความจำที่สามารถจัดสรรได้ เช่นเดียวกับความสามารถในการจัดสรรหน่วยความจำสำหรับอ็อบเจ็กต์ที่ไม่รู้จักจนกระทั่งรันไทม์
4 การรวบรวมขยะ: นี่เป็นกระบวนการเรียกคืนหน่วยความจำโดยอัตโนมัติซึ่งถูกจัดสรรไว้ก่อนหน้านี้สำหรับอ็อบเจ็กต์ที่ไม่ได้ใช้งานอีกต่อไป ซึ่งจะช่วยป้องกันการรั่วไหลของหน่วยความจำและทำให้แน่ใจว่าหน่วยความจำถูกใช้อย่างมีประสิทธิภาพ



