对于作业,我们必须使用预定的头文件 - 我无法对其进行任何更改。
然而,大多数函数返回一个节点(一个struct节点),但我希望它们返回一个指向该节点的指针。
有没有办法在我的functions.c
文件中更改函数调用?
如果没有返回节点,我怎么能有一个指向它的指针?
例如:
bst_node_t BSTSearchNode( bst_root_t root, bst_key_t key, cmp_func_t cmp_func );
是头文件中的函数原型。但是我想返回指向节点而不是节点本身的指针。
答案 0 :(得分:2)
不,你不能,函数声明和定义必须匹配。
出于好奇,将使用与您的实现链接的程序检查分配,并尝试调用BSTSearchNode函数?在这种情况下,你真的想以正确的方式定义它......
编辑:在您的评论之后,您的任务实际上是按照定义实现该功能,而不是更改其返回类型。所以,就这样做;)
按照要求继续传递值可能实际上更简单(如果您尝试传递指向数据的指针,则必须小心节点的内存分配位置,拥有者的位置等等...)。标头中的API可能不适合此。
当然,如果bst_node_t
是指向某个实体的指针的typedef,这也适用,在这种情况下,您无需更改任何内容。没有标题很难分辨......