Добрый день!
Стоит следующая задача: есть некоторое количество функций func00, func01, ... , funcN. В зависимости от значения переменной необходимо вызвать либо func00, либо func01, и т.д. Причем городить конструкцию switch-case очень не хочется (условий получится больше 100).
Попробовал создать массив указателей на функции, следующим образом:
Код
void func00(void)
{
printf("func00");
}
void func01(void)
{
printf("func01");
}
void test(void)
{
void *func();
int ptrs[2];
char x;
ptrs[0] = (int)func00;
ptrs[1] = (int)func01;
// пытаемся присвоить func() указатель на нужную функцию
x = 0;
func = (void*)ptrs[x];
// вызов функци
func();
}
При компиляции для строчки func = (void*)ptrs[x] выдается вполне ожидаемая ошибка - Error[Pe137]: expression must be a modifiable lvalue.
Что делать?