У меня есть функция, которая принимает следующий аргумент:Ошибка компиляции. Определение несоответствия. недействительный (*) (недействительный *)
int setvalue(void (*)(void *));
Для того, чтобы удовлетворить параметр: void (*)(void *)
, я создал такую функцию:
static void *freeFunction(void *freeAbc)
{
AllocAbc *abc = (AllocAbc*) freeAbc;
if (abc)
{
delete abc;
}
return NULL;
}
и я пытаюсь использовать оба вместе:
AllocAbc *allocAbc = new AllocAbc();
...
void *freeAbc = (void *) allocAbc;
if (setvalue (freeFunction(freeAbc)) < 0)
{
...
}
Я получаю сообщение об ошибке говорящее error: invalid conversion from ‘void*’ to ‘void (*)(void*)’ [-fpermissive]
Что нужно изменить здесь (либо в определении freeFunction, либо в том, как я использую оба), чтобы заставить его работать.
Спасибо.
Какая строка является ошибкой? –
Возможный дубликат [Как работают указатели функций в C?] (Http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work) – Barracuda