是的,C++中可以使用动态二维数组,并且可以改变其大小。一种常见的方法是使用指针数组,例如:
int rows = 3;
int cols = 4;
int** arr = new int*[rows];
for (int i = 0; i < rows; i++) {
arr[i] = new int[cols];
}
// 改变大小
int newRows = 5;
int newCols = 6;
int** newArr = new int*[newRows];
for (int i = 0; i < newRows; i++) {
newArr[i] = new int[newCols];
}
// 释放原数组内存
for (int i = 0; i < rows; i++) {
delete[] arr[i];
}
delete[] arr;
// 使用新数组
arr = newArr;
rows = newRows;
cols = newCols;
要注意的是,在改变大小之前,需要释放原数组的内存,然后重新分配新的内存。这样做可以确保程序不会出现内存泄漏问题。