Я пытаюсь получить пользовательский ввод и установить его как PUZZLESIZE, который используется int peg и row, но я получаю выражение, которое должно иметь постоянное значение.создание значения const на основе ввода пользователя
Как я могу получить ввод пользователя и установить его как глобальную константу, которую узнает структура Board?
int a;
const int PIECE = a;
const int PUZZLESIZE = ((PUZZLESIZE *(PUZZLESIZE+1)) /2);
typedef struct Board {
int *row[PUZZLESIZE];
int peg[PIECE];
int lastmove;
struct Board *prevBoard;
int prow;
int pcol;
} Board;
int main()
{
scanf("%d",a);
}
Спасибо за любую помощь в пожилом
Вы не можете превратить значение времени выполнения в константу времени компиляции. – chris
Также обратите внимание, что значение 'const' не совпадает с константным выражением. Вам нужен последний для 'PUZZLESIZE', и вы не можете получить его во время выполнения. Но вы можете инициализировать 'const int' во время выполнения. – juanchopanza
Возможный дубликат [C++: создание массива с размером, введенным пользователем] (http://stackoverflow.com/questions/28625465/c-creating-an-array-with-a-size-entered-by-the -user) –