【发布时间】:2012-08-03 09:16:37
【问题描述】:
我有一个指向 C/C++ 变量的指针。是否可以准确地确定该变量属于哪个内存段?如果是,如何?
注意:我只有这个变量的地址,如果变量是本地/全局等,则没有更多信息。
【问题讨论】:
-
不可能,至少不能以便携的方式。
-
您要解决什么问题?您需要运行时或编译时解决方案吗?寄存器没有地址。
-
我们刚刚争论了全局变量是属于栈还是堆,想确认一下:P
-
@Amit - 回答真正的问题:全局变量是独立的,不是堆栈也不是堆。
-
@BradTilley:未指定静态存储是否使用堆,以及如果您依赖它,则为未定义行为。静态存储不能使用堆栈,因为后者强加了与前者不兼容的破坏顺序语义。然而,堆并没有施加这样的限制,因此可以作为静态存储和堆栈的基础。
标签: c++ c memory-management heap-memory stack-memory