У меня есть этот код на языке c, он проверяет, является ли число, записанное в определенной числовой основе, десятичном, восьмеричном, ..etc, корректным, означает, что он использует символы, которые принадлежат этой определенной базе, например, восьмеричное число должно использовать только символы [0, 1, 2, 3, 4, 5, 6, 7], оно проверяет все основания от 2 до 36.
Проблема в том, что, когда я пытаюсь вычленить "базовые" символы из общего количества символов, появляется предупреждение о том, что ISO C90 forbids variable length array 'base_symbols'
int checkNumBase(char *num, int base){
char all_symbols[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char base_symbols[base];
int i;
unsigned int k;
for(i = 0; i<base; i++){
base_symbols[i] = all_symbols[i];
}
for(k = 0; k<strlen(num); k++){
if(strchr(base_symbols, num[k]) == NULL){
return 0;
}
}
return 1;
}