【发布时间】:2012-01-05 13:34:57
【问题描述】:
假设我有以下两个功能:
1
int * foo()
{
int b=8;
int * temp=&b;
return temp;
}
2
int * foo()
{
int b=8;
return &b;
}
我没有收到第一个警告(例如 函数返回局部变量的地址)但我知道这是非法的,因为 b 从堆栈中消失了,我们只剩下指向未定义内存的指针。
那么我什么时候需要小心返回临时值的地址呢?
【问题讨论】:
标签: c return return-value