C++指针使用多少内存?

Hor*_*Fat 16 c++ pointers

我正在做(可能是错误的)假设它是依赖于实现和/或系统的.是否有类似INT_MAX或CHAR_BIT的东西会告诉我内存中指针的大小?

Sin*_*all 31

指针指向内存中的一个位置,因此在32位系统上为32位,在64位系统中为64位.

指针大小也与它指向的类型无关,可以通过测量 sizeof(anyType*)

UPD

我回答这个问题的方式是问问题的方式(建议一个简单的答案).是的,我同意在像虚拟方法表指针的情况下,指针的大小会有所不同,根据这篇文章,它会在不同的平台上,甚至在同一平台内的不同编译器上有所不同.在我的例子中,例如(x64 ubuntu,GCC 4.6.3)它等于16个字节.

  • @AdamSerafini是的,它是4个字节= 32位.但是你需要设置你的项目来编译它为64位,默认它是32位,即使你使用64位操作系统.http://msdn.microsoft.com/en-us/library/9yb4317s(v=vs.80).aspx (3认同)
  • 错误.在64位操作系统上,您仍然可以在32位模式下编译程序. (2认同)

Nat*_*ite 5

sizeof(int*)工作吗?或者无论你想要检查什么?