Как вернуть указатель из функции, которая вызывает функцию, указатель на функцию, которая возвращает указатель? - PullRequest
0 голосов
/ 23 октября 2018
node *insertPlaceOrder(node *head, char *firstName, char *lastName, int day, int month, 
    int year, char *birthPlace) {
  //CODE
return head;                     
}

node *insertToList(node (*(*order))(node*, char*, char*, int, int, int, char*), node *head, 
    char *firstName, char *lastName, int day, int month, int year, char *birthPlace) {
  return (*order)(head, firstName, lastName, day, month, year, birthPlace);
}

Когда я отлаживаю этот код, компилятор выдает мне следующую ошибку:

несовместимые типы при возврате типа 'узел {он же структурный узел}' но 'узел * {он же структурный узел*} 'ожидалось.

Как получить функцию insertToList() для возврата указателя на узел структуры, который возвращает функция insertPlaceOrder()?

1 Ответ

0 голосов
/ 23 октября 2018

У вас есть дополнительный набор скобок в типе указателя на функцию.У вас есть:

node (*(*order))(node*, char*, char*, int, int, int, char*)

, который определяет order как указатель на указатель на функцию, возвращающую node, а не указатель на функцию, возвращающую node *.Вместо этого должно быть:

node *(*order)(node*, char*, char*, int, int, int, char*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...