Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฉันจะประกาศอาร์เรย์สองมิติใน C ++ โดยใช้ new ได้อย่างไร


อาร์เรย์ 2 มิติแบบไดนามิกนั้นเป็นอาร์เรย์ของพอยน์เตอร์ไปยังอาร์เรย์ ดังนั้น ก่อนอื่นคุณต้องเริ่มต้นอาร์เรย์ของพอยน์เตอร์ไปยังพอยน์เตอร์ จากนั้นจึงเริ่มต้นอาร์เรย์ 1d แต่ละอันในลูป

ตัวอย่าง

#include<iostream>
using namespace std;

int main() {
   int rows = 3, cols = 4;
   int** arr = new int*[rows];
   for(int i = 0; i < rows; ++i)
   arr[i] = new int[cols];
   return 0;
}

สิ่งนี้จะสร้างอาร์เรย์ 2 มิติขนาด 3x4 ล้างหน่วยความจำด้วยวิธีต่างๆ ในกรณีดังกล่าว เนื่องจากคุณจะต้องลบหน่วยความจำในลักษณะเดียวกับที่คุณจัดสรรไว้ แต่ในลำดับที่กลับกัน กล่าวคือ คุณจะต้องลบอาร์เรย์ 1D ก่อน ตามด้วยอาร์เรย์ของพอยน์เตอร์