【发布时间】:2017-06-15 15:17:24
【问题描述】:
我正在使用 Microsoft Visual Studio 2008
当我创建一个指向对象的指针时,它会收到一个内存地址,在我的例子中是一个 8 位十六进制数。例如:0x02e97fc0
使用 8 个十六进制数字,计算机可以寻址 4GB 的内存。我的电脑有 8GB 内存:
这是否意味着我的 IDE 没有使用超过 4GB 的内存?
IDE 是否只能处理我内存的前 4GB 或未使用的 8GB 内存中的任何 4GB?
问题不仅仅在于所用内存的大小。这也与使用的内存的位置有关。后者这里不详述:The maximum amount of memory any single process on Windows can address
【问题讨论】:
-
前导 0 通常会被删除,因为它们不会改变值。
-
为 64 位目标编译也将授予您 64 位指针,从而能够寻址更多内存空间。
-
“我的 IDE”——这是一个集成开发环境。 IDE 的编辑器部分并不在意。决定使用 32 位的是编译器部分。链接器跟随编译器。
标签: c++ memory memory-management heap-memory stack-memory