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

24
ฉันจะประกาศอาร์เรย์ 2d ใน C ++ โดยใช้ใหม่ได้อย่างไร
ฉันจะประกาศอาร์เรย์ 2d โดยใช้ใหม่ได้อย่างไร เช่นสำหรับอาร์เรย์ "ปกติ" ฉันจะ: int* ary = new int[Size] แต่ int** ary = new int[sizeY][sizeX] a) ไม่ทำงาน / คอมไพล์และ b) ไม่ทำสิ่งที่สำเร็จ: int ary[sizeY][sizeX] ทำ.

18
เป็นวิธีที่ดีในการ NULL ตัวชี้หลังจากลบหรือไม่
ฉันจะเริ่มต้นด้วยการพูด ใช้ตัวชี้สมาร์ทและคุณจะไม่ต้องกังวลเกี่ยวกับเรื่องนี้ รหัสต่อไปนี้มีปัญหาอะไร? Foo * p = new Foo; // (use p) delete p; p = NULL; นี่เป็นจุดประกายโดยคำตอบและแสดงความคิดเห็นต่อคำถามอื่น หนึ่งความคิดเห็นจากNeil Butterworthสร้าง upvotes ไม่กี่: การตั้งค่าพอยน์เตอร์เป็น NULL หลังการลบไม่ใช่แนวปฏิบัติสากลที่ดีใน C ++ มีหลายครั้งที่มันเป็นเรื่องดีที่ต้องทำและบางครั้งเมื่อมันไม่มีจุดหมายและสามารถซ่อนข้อผิดพลาดได้ มีสถานการณ์มากมายที่ไม่สามารถช่วยได้ แต่จากประสบการณ์ของฉันมันไม่สามารถทำร้ายได้ ใครบางคนสอนฉัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.