Я пытаюсь инициализировать массив структур. Структура содержит указатель на функцию в качестве одного из элементов данных. Но мой компилятор выдает ошибку, жалуясь на то, что элемент инициализатора не является константой. Как я могу инициализировать массив с объявленным указателем на функцию?
typedef void (*write_func_ptr_t)( void**, size_t*, char*, const size_t);
typedef bool (*read_func_ptr_t)( char*, const void*, const size_t);
write_func_ptr_t generate_basic_msg_ptr;
read_func_ptr_t handle_basic_msg_ptr;
write_func_ptr_t generate_reg_msg_ptr;
read_func_ptr_t handle_reg_msg_ptr;
struct supported_msg_info
{
const char* const type;
const write_func_ptr_t write_func;
const read_func_ptr_t read_func;
};
static struct supported_msg_info SUPP_MESSAGES[] = {
{ "basic", generate_basic_msg_ptr, handle_basic_msg_ptr },
{ "registration", generate_reg_msg_ptr, handle_reg_msg_ptr }
};
const
, они все равно не работали бы, потому что правила инициализации C очень строги. - person Austin Mullins   schedule 20.02.2015