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