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()
返回的结构节点?
答案 0 :(得分:2)
在函数指针类型中,您有一组额外的括号。你有:
node (*(*order))(node*, char*, char*, int, int, int, char*)
其中将order
定义为返回node
的指向函数的指针,而不是返回node *
的指向函数的指针。相反,它应该是:
node *(*order)(node*, char*, char*, int, int, int, char*)