Динамическое создание 2d-массивов в C без malloc - PullRequest
0 голосов
/ 28 марта 2020

Я написал небольшую игру на C, которая имеет игровую структуру в виде доски. Итак, я использовал 2d массив структур, которые содержат много элементов данных, таких как целое число, bools, chars и т. Д. c. (давайте назовем эту структуру cell). Размер массива - MxN, оба из которых переменные , значения которых могут быть изменены пользователем (по умолчанию они равны 10). Этот массив с именем grid существует главным образом в функции с именем play(), которая обрабатывает ход игры, а main используется только в качестве меню для вызова play() или settings(), et c. Таким образом, когда я изменяю значения M и N в settings(), go обратно на main и выбираю 'play', в функции создается новый двумерный массив (grid) необходимого размера, и уничтожается, когда я прекращаю играть (когда управление выходит play()). Все это делается без вызова malloc() или free().

Теперь мой вопрос: как это работает? M и N являются (глобальными) переменными - их значения не известны компилятору во время компиляции. Так не должен ли компилятор выдавать ошибку?

Бонусный вопрос: как мне go преобразовать этот код для использования правильных методов динамического выделения c, используя mallo c?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...