【发布时间】:2012-01-26 02:48:06
【问题描述】:
我有一个存储一些信息的双链接列表。当我尝试返回链接列表中的一个值时,我收到警告:函数返回局部变量的地址。
这是我的退货声明:
return curr_val->value;
值的类型为const void*。
方法签名如:void *get_val(int key)
curr_val 是结构体类型。它等于我在链表中的一个节点。
如何返回值并且返回后它不会消失?顺便说一句,我无法更改方法签名。
【问题讨论】:
-
方法签名是什么?什么是
curr_val? -
编辑您的问题,向我们展示函数定义。
-
您没有添加足够的信息,但@Borealid 可能是正确的。还 +1 表示注意编译器警告。
-
您可能应该编辑问题以添加函数的代码,以便我们可以找出编译器警告您的原因。但是,正如 Seth 所说,您从我们这里得到了很好的评价,因为您注意编译器警告。编译器费心警告的任何事情都可能是一个问题。他们努力避免给出误报,因为这会破坏警告的有用性。
标签: c