gpt4 book ai didi

c++ - 局部变量的安全

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:12 25 4
gpt4 key购买 nike

<分区>

以下函数是否安全,返回一个指向局部变量的指针?

int * foo(void)
{
int a = 6;
int *p = &a;
return p;
}

如果不是,在什么条件下?如果是,编译器如何保证安全性?

尝试过的测试用例:

int * foo(void)
{
int a = 6;
int *p = &a;
return p;
}

int * bar(void)
{
int b = 7;
int *p = &b;
return p;
}

int main()
{
int a = *foo();
int b = *bar();
printf("%d, %d, %d\n", 1, 2, 3); //to mess up stack
printf("%d, %d\n", a, b);
return 0;
}

它将成功打印“6, 7”。然而,对于 -O2,它会打印“0, 0”

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com