Mảng 2D động về cơ bản là một mảng con trỏ tới mảng. Vì vậy, trước tiên bạn cần khởi tạo mảng con trỏ tới con trỏ và sau đó khởi tạo từng mảng 1d trong một vòng lặp.
ví dụ
#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; }
Điều này sẽ tạo ra một mảng 2D có kích thước 3x4. Hãy thay đổi cách xóa bộ nhớ trong những trường hợp như vậy, vì bạn sẽ cần xóa bộ nhớ giống như cách bạn đã cấp phát nó nhưng theo thứ tự ngược lại, tức là trước tiên bạn cần xóa mảng 1D sau đó mới đến mảng con trỏ.