Скажем, у меня есть две следующие функции:
1
int * foo()
{
int b=8;
int * temp=&b;
return temp;
}
2
int * foo()
{
int b=8;
return &b;
}
Я не получаю предупреждения о первом ( например, функция возвращает адрес локальной переменной ), но я знаю, что это недопустимо, поскольку b
исчезает из стека, и у нас остается указатель на неопределенную память.
Итак, когда это сделать Мне нужно быть осторожным при возврате адреса временного значения?