คำถามติดแท็ก dynamic-memory-allocation

27
กองและกองคืออะไรและอยู่ที่ไหน
หนังสือภาษาการเขียนโปรแกรมอธิบายว่าชนิดของค่าถูกสร้างขึ้นบนสแต็กและประเภทการอ้างอิงจะถูกสร้างขึ้นบนฮีปโดยไม่ต้องอธิบายว่าสองสิ่งนี้คืออะไร ฉันไม่ได้อ่านคำอธิบายที่ชัดเจนเกี่ยวกับเรื่องนี้ ฉันเข้าใจว่าสแต็คคืออะไร แต่, พวกเขาอยู่ที่ไหนและอะไร (ทางกายภาพในหน่วยความจำของคอมพิวเตอร์จริง)? มีการควบคุมโดยระบบปฏิบัติการหรือภาษาที่ใช้งานในระดับเท่าใด ขอบเขตของพวกเขาคืออะไร? อะไรเป็นตัวกำหนดขนาดของแต่ละคน อะไรทำให้เร็วขึ้น

7
ความแตกต่างระหว่างการจัดสรรหน่วยความจำแบบคงที่และการจัดสรรหน่วยความจำแบบไดนามิก
ฉันต้องการทราบว่าอะไรคือความแตกต่างระหว่างการจัดสรรหน่วยความจำแบบคงที่และการจัดสรรหน่วยความจำแบบไดนามิก คุณช่วยอธิบายเรื่องนี้ด้วยตัวอย่างได้ไหม

7
'ใหม่' และ 'ลบ' ได้รับการเลิกใช้ใน C ++ หรือไม่
ฉันพบคำถามที่เกี่ยวข้องกับการประกาศอาร์เรย์ที่มีขนาดต่างกัน สิ่งแรกที่อยู่ในใจของฉันคือฉันจะต้องใช้การจัดสรรแบบไดนามิกกับnewคำสั่งเช่นนี้ while(T--) { int N; cin >> N; int *array = new int[N]; // Do something with 'array' delete[] array; } อย่างไรก็ตามฉันเห็นว่าหนึ่งในวิธีแก้ปัญหาอนุญาตกรณีดังต่อไปนี้: while(T--) { int N; cin >> N; int array[N]; // Do something with 'array' } หลังจากการวิจัยเล็กน้อยฉันอ่านว่า g ++ อนุญาตให้ทำสิ่งนี้ได้ แต่มันทำให้ฉันนึกถึงซึ่งในกรณีนี้จำเป็นต้องใช้การจัดสรรแบบไดนามิกหรือไม่ หรือว่าคอมไพเลอร์แปลว่าเป็นการจัดสรรแบบไดนามิกหรือไม่ ฟังก์ชั่นลบรวมอยู่ด้วย อย่างไรก็ตามโปรดทราบว่าคำถามในที่นี้ไม่เกี่ยวกับการรั่วไหลของหน่วยความจำ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.