Вы объявили, что ваш член counter_func
является указателем на int, а не указателем на функцию, в то время как у вас есть что-то похожее на объявление указателя на функцию в вашем option values
.Вот что вы хотите (при условии, что вы возвращаете тип int)
typedef struct OptionValueStruct{
char counter_name[OPTION_LINE_SIZE];
int (*counter_func)(char*, char**);
} OptionValueStruct_t;
const OptionValueStruct_t option_values[] = {
{"Counter1", parseCounter1},
{"Counter2", parseCounter2},
};
for(int i = 0; i< sizeof(option_values)/sizeof(OptionValueStruct_t); i++){
result = option_values[i]->counter_func(opt_name, opt_val);
// don't know what you relly want to do with result further on..
}