gpt4 book ai didi

C 堆栈/范围,函数结束后变量的生命周期

转载 作者:太空狗 更新时间:2023-10-29 15:34:01 25 4
gpt4 key购买 nike

void someFunc()
{
int stackInt = 4;

someOtherFunc(&stackInt);
}

是否可以在 someFunc 结束后重新分配 stackInt 的地址空间,从而假设传递给 someOtherFunc 的值代表传递给它的值为 4 的 stackInt 变量是不安全的?换句话说,我是否应该避免通过地址传递堆栈变量并期望它们在初始化它们的函数结束后仍然存在?

最佳答案

是的,绝对是。

不过,您不必完全避免通过引用/指针传递堆栈分配的变量,只需存储指针或对堆栈分配变量的引用即可。

关于C 堆栈/范围,函数结束后变量的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2672986/

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