我发现这段代码在网上作为示例,但我认为这是不正确的。返回自动变量的地址,这只是偶然性,有时可能会工作:
返回指向已销毁的局部变量的指针,导致无效内存位置,是未定义的行为。
我唯一的小犹豫是关于指针是否为静态的,但我认为这并没有改变什么,因为应该是变量而不是指针:局部变量将被销毁。您能否确认或否定?
返回指向已销毁的局部变量的指针,导致无效内存位置,是未定义的行为。
我唯一的小犹豫是关于指针是否为静态的,但我认为这并没有改变什么,因为应该是变量而不是指针:局部变量将被销毁。您能否确认或否定?
double *& showNumber()
{
double n = 1550.85;
static double *v = &n;
return v;
}
int main(int argc, char *argv[])
{
double sn = *showNumber();
sn = *showNumber();
//...
}