Изменить размерность массивов во время работы программы - C (СИ)
Формулировка задачи:
Добрый день. Суть проблемы такова: из txt файла считывается размер двумерного массива и создает его, но на это программа дает ошибку (указание размерности должно быть константой..) , по сути мне не нужно изменять размер в последующем, а только создать. Code::Blocks компилирует и ошибки не выдает(все ок) , данная ошибка вылезает при работе с Visual C++.
Вот участок кода:
Кто может помочь? Я в теории могу переписать под списки, но суть вопроса не меняет.
int W,H,m[2];
ifstream x("INPUT.txt");
ofstream y("OUTPUT.txt");
x>>W>>H;
tElement2 *p,*temp;
init_stack2(p);init_stack2(temp);
Graf a[W+2][H+2];//тут вылезает ERRORРешение задачи: «Изменить размерность массивов во время работы программы»
textual
Листинг программы
Graf *a = new Graf[W+2][H+2]; delete[] a; //Высвобождение памяти
Объяснение кода листинга программы
- Создается указатель Graf на массив Graf[W+2][H+2] (где W и H - это константы, определяющие размерность массива)
- Выделяется память под массив Graf[W+2][H+2] с помощью оператора new
- В цикле заполняются значения массива a
- После окончания работы с массивом, память, выделенная под массив, освобождается с помощью оператора delete[]