【问题标题】:I want to return address of local variable我想返回局部变量的地址
【发布时间】:2013-09-22 03:06:19
【问题描述】:

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

提前致谢

【问题讨论】:

    标签: c++ pointers compiler-errors warnings


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!我会考虑将变量设为静态。
    猜你喜欢
    • 2021-04-28
    • 1970-01-01
    • 2014-05-14
    • 2012-09-07
    • 2012-09-05
    • 1970-01-01
    • 2013-01-30
    • 2011-10-17
    相关资源
    最近更新 更多