我有一个方法可以在数据结构中存储全局指针,并且在某些时候尝试将它们从数据结构中取出并返回它们。我希望能够返回它们,因为我知道它们没问题但编译器确实没有不允许我。它认为它们只是本地的,因为它们刚刚被从数据结构中取出,但实际上我是从外部取出的。
提前致谢
答案 0 :(得分:1)
没有;编译器比你知道的更好。您无法安全地返回不是static
的局部变量的地址。您可以将全局变量的地址作为指针从函数返回,但这不是您尝试执行的操作。如果你这样做,请注意线程的后果(如果变量中的值发生变化,线程代码的后果是可怕的;如果它正在访问一个只读 - 不可变,不变的值,那么这不是问题)。
收听你的编译器;它试图保护你自己。它比你更了解C ++。
为了说服我们编译器错误,您必须显示您的代码 - 但您展示的内容不太可能有效。