我收到警告:函数返回c中局部变量的地址

时间:2012-01-26 02:48:06

标签: c

我有一个存储一些信息的双链表。当我尝试返回链接列表中的一个值时,我收到警告:函数返回局部变量的地址。

这是我的回复声明:

return curr_val->value;

值的类型为const void*

方法签名就像:void *get_val(int key)

curr_val是结构类型。它等于链表中的一个节点。

如何返回值并且在我返回后它不会消失?顺便说一句,我无法改变方法签名。

1 个答案:

答案 0 :(得分:2)

问题可能是您已将堆栈分配变量的地址分配给value。您需要使用newmalloc来获取您希望在当前堆栈帧之外继续存在的变量的内存。