我想返回局部变量的地址
I want to return address of local variable
我有一个方法,可以将全局指针存储在数据结构中,并在某个时候尝试将它们从数据结构中取出并返回它们。我希望能够返回它们,因为我知道它们没问题,但编译器不允许我。它认为它们只是本地的,因为它们刚刚从数据结构中获取,但实际上我是从外部获取的。
提前致谢
不,编译器比你更清楚。 您无法安全地返回未static
的局部变量的地址。 您可以将全局变量的地址作为函数的指针返回,但这似乎不是您要做的。 如果你这样做,请注意线程化的后果(如果变量中的值发生变化,线程化代码的后果是可怕的;如果它访问的是只读的——不可变的、不变的——值,这不是问题)。
听你的编译器;它试图保护你免受自己的伤害。 它比你更了解C++。
为了说服我们编译器是错误的,你必须展示你的代码——但你展示的内容不太可能是有效的。
相关文章:
- libmysql:警告:返回局部变量"行"的地址(C++/C)
- 从函数返回变量地址时如何修复"与局部变量关联的堆栈内存地址"?
- 变量循环范围会导致返回局部变量的地址引用
- 局部变量保存相同的内存地址
- 使用函数模板中静态局部变量的地址作为类型标识符是否安全
- 警告:返回局部变量'buffer'地址
- 返回的与局部变量关联的堆栈内存的地址 (C++)
- 局部变量的地址
- 警告:返回局部变量"角度"的地址 [-Wreturn-local-addr]
- 是否释放了局部变量的地址
- 局部变量和其他变量类型的地址存储在哪里
- 局部变量的内存地址根据 lambda 参数的预感而变化
- 我想返回局部变量的地址
- 为什么局部变量的地址每次都不同
- 将局部变量的地址作为C++11中的常量表达式
- 为什么编译器在编译时不知道局部变量的地址?
- 更改局部变量的地址
- 局部变量的返回地址和程序仍然有效
- 为什么局部变量的地址对于不同的执行是相同的
- 将地址返回给局部变量与返回指向局部变量的指针