Изменить размерность массивов во время работы программы - 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[]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д