0

对于作业,我们必须使用预先确定的头文件——我无法对其进行任何更改。

但是大多数函数返回一个节点(一个结构节点),但我希望它们返回一个指向该节点的指针。

有什么方法可以更改我functions.c文件中的函数调用吗?

如果不是一旦返回节点,我怎么能有一个指向它的指针?

例如:

bst_node_t BSTSearchNode( bst_root_t root, bst_key_t key, cmp_func_t cmp_func );

是头文件中的函数原型。但是我想返回一个指向节点而不是节点本身的指针。

4

1 回答 1

2

不,你不能,函数声明和定义必须匹配。

出于好奇,是否会使用与您的实现链接的程序检查分配,并尝试调用 BSTSearchNode 函数?在这种情况下,你真的想以正确的方式定义它......

编辑:根据您的评论,您的分配实际上是按照定义实现函数,而不是更改其返回类型。所以,就这样做;)

按照要求继续传递值实际上可能更简单(如果您尝试传递指向数据的指针,则必须小心分配节点的内存位置,谁拥有它等等...... )。您的标头中的 API 可能不适用于此。

当然,如果bst_node_t是指向某个实体的指针的 typedef,这也适用,在这种情况下,您无需更改任何内容。没有标题很难说...

于 2013-02-20T14:07:19.123 回答