gpt4 book ai didi

c - 函数返回后本地内存地址是否有效?

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

<分区>

Possible Duplicate:
Can a local variable's memory be accessed outside its scope?

我正在刷新有关内存内部工作原理的知识,但我面临着困惑。这是示例代码

int * func(){
int retval = 3;
return &retval;
}

int main(void){
int *ptr = func();
printf("address return from function %p and value %d\n", ptr, *ptr);
}

我对堆栈内存如何在例程上工作的理解是,当函数被调用时,它被压入堆栈。一旦函数返回,此例程中局部变量的生命周期将不再有效。所以局部变量的返回地址似乎无效,但是当我测试这段代码时,它实际上返回了它的地址并且在函数返回后仍然有效。

我是不是误解了这个概念?感谢任何意见,谢谢。

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