7
C อาร์เรย์ที่เติบโตแบบไดนามิก
ฉันมีโปรแกรมที่อ่านรายการเอนทิตีในเกม "ดิบ" และฉันตั้งใจจะสร้างอาร์เรย์ที่มีหมายเลขดัชนี (int) ของเอนทิตีที่ไม่แน่นอนสำหรับการประมวลผลสิ่งต่างๆ ฉันต้องการหลีกเลี่ยงการใช้หน่วยความจำหรือ CPU มากเกินไปในการรักษาดัชนีดังกล่าว ... วิธีแก้ปัญหาที่รวดเร็วและสกปรกที่ฉันใช้จนถึงตอนนี้คือการประกาศในฟังก์ชันการประมวลผลหลัก (โฟกัสเฉพาะที่) อาร์เรย์ที่มีขนาดของเอนทิตีเกมสูงสุดและจำนวนเต็มอื่นเพื่อติดตามจำนวนที่ถูกเพิ่มเข้าไปในรายการ สิ่งนี้ไม่น่าพอใจเนื่องจากทุกรายการมีอาร์เรย์มากกว่า 3,000 รายการซึ่งไม่มากนัก แต่รู้สึกว่าเป็นการสิ้นเปลืองเนื่องจากฉันจะใช้วิธีแก้ปัญหาได้ 6-7 รายการสำหรับฟังก์ชันที่แตกต่างกัน ฉันไม่พบโซลูชันเฉพาะ C (ไม่ใช่ C ++ หรือ C #) เพื่อให้บรรลุสิ่งนี้ ฉันสามารถใช้พอยน์เตอร์ได้ แต่ฉันค่อนข้างกลัวที่จะใช้มัน (เว้นแต่จะเป็นวิธีเดียวที่เป็นไปได้) อาร์เรย์จะไม่ออกจากขอบเขตฟังก์ชันโลคัล (จะถูกส่งต่อไปยังฟังก์ชันจากนั้นจึงละทิ้ง) ในกรณีที่มีการเปลี่ยนแปลงสิ่งต่างๆ หากพอยน์เตอร์เป็นทางออกเดียวฉันจะติดตามสิ่งเหล่านี้เพื่อหลีกเลี่ยงการรั่วไหลได้อย่างไร
126
c
dynamic-arrays