【问题标题】:What the pointer size in 64 bits computer in C++?C ++中64位计算机的指针大小是多少?
【发布时间】:2011-07-27 08:23:33
【问题描述】:

我的电脑是从 32 位变成 64 位的,我的操作系统是 64 位 Windows 7。我认为 64 位操作系统中的指针应该是 64 位 -- 8 字节。但是,当我在 C++ 中使用 sizeof(void*) 来获取点的大小时,结果是 4。

为什么是 4 个??

【问题讨论】:

  • 你确定你的程序是用 64 位编译的吗?
  • sizeof(what?)。你将什么传递给 sizeof 运算符?

标签: c++ 64-bit


【解决方案1】:

您的可执行文件仍在编译为 32 位二进制文​​件。尝试将其编译为 64 位项目。

如果处理器在 32 位环境中模拟程序,则操作系统对指针的内部大小没有影响...

在 VS2010 中,转到配置管理器,在“平台”下新建一个条目,然后选择 x64(通常这是唯一的其他选项)

编辑:另外,请确保您将 void* 传递给 sizeof() 运算符。

【讨论】:

  • 谢谢你的回答,对我帮助很大。
【解决方案2】:

您是在 64 位模式还是 32 位模式下编译?在 Visual Studio 中需要选择编译的 CPU 类型,默认可能是 32 位。

另外,请确保您使用sizeof(void*)

【讨论】:

    猜你喜欢
    • 2012-06-15
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2019-08-21
    • 2011-10-08
    • 1970-01-01
    相关资源
    最近更新 更多