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

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

这是我的回复声明:

return curr_val->value; 

value的类型为const void*

方法签名如下: void *get_val(int key)

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

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

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