我想返回局部变量的地址

I want to return address of local variable

本文关键字:地址 局部变量 返回      更新时间:2023-10-16

我有一个方法,可以将全局指针存储在数据结构中,并在某个时候尝试将它们从数据结构中取出并返回它们。我希望能够返回它们,因为我知道它们没问题,但编译器不允许我。它认为它们只是本地的,因为它们刚刚从数据结构中获取,但实际上我是从外部获取的。

提前致谢

不,编译器比你更清楚。 您无法安全地返回未static的局部变量的地址。 您可以将全局变量的地址作为函数的指针返回,但这似乎不是您要做的。 如果你这样做,请注意线程化的后果(如果变量中的值发生变化,线程化代码的后果是可怕的;如果它访问的是只读的——不可变的、不变的——值,这不是问题)。

听你的编译器;它试图保护你免受自己的伤害。 它比你更了解C++。

为了说服我们编译器是错误的,你必须展示你的代码——但你展示的内容不太可能是有效的。