我收到警告:函数返回c中的局部变量的地址
我有一个存储一些信息的双链表。 当我尝试返回链接列表中的一个值时,我收到警告:函数返回局部变量的地址。
这是我的回复声明:
return curr_val->value;
value的类型为const void*
。
方法签名如下: void *get_val(int key)
curr_val
是一种结构类型。 它等于链表中的一个节点。
如何返回值并且在我返回后它不会消失? 顺便说一下,我无法改变方法签名。
问题可能是您已将堆栈分配的变量的地址分配给value
。 您需要使用new
或malloc
来获取您希望在当前堆栈帧之外继续存在的变量的内存。