如何从通过指针调用函数的函数返回指向返回指针的函数的指针?

时间:2018-10-23 14:47:38

标签: c function pointers

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);
}

当我调试此代码时,编译器给我以下错误:

  

返回类型“ node {aka struct node}”但类型为“ node * {aka struct node *}”时不兼容的类型。

如何获取insertToList()函数以将指针返回到函数insertPlaceOrder()返回的结构节点?

1 个答案:

答案 0 :(得分:2)

在函数指针类型中,您有一组额外的括号。你有:

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

其中将order定义为返回node的指向函数的指针,而不是返回node *的指向函数的指针。相反,它应该是:

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