Я получаю предупреждение: функция возвращает адрес локальной переменной в c

У меня есть двойной список ссылок, который хранит некоторую информацию. Когда я пытаюсь вернуть одно из значений внутри списка ссылок, я получаю предупреждение: функция возвращает адрес локальной переменной.

Это мое заявление о возврате:

return curr_val->value; 

значение имеет тип const void* .

Подпись метода похожа: void *get_val(int key)

curr_val имеет тип структуры. Он равен одному из моих узлов в связанном списке.

как вернуть значение, и он не исчезнет после моего возвращения? Кстати, я не могу изменить подпись метода.

Вероятно, проблема связана с тем, что вы присвоили адрес переменной, присвоенной стеку. Вам нужно использовать new или malloc для получения памяти для переменных, которые вы намереваетесь продолжать существовать за пределами текущего фрейма стека.