2011-07-27 59 views
7

我的電腦從32位變成了64位,而我的操作系統是64位的Windows 7.我認爲64位操作系統中的指針應該是64位--8個字節。但是,當我在C++中使用sizeof()來獲取點的大小時,結果爲4.C++中64位計算機的指針大小是多少?

爲什麼4?

+0

代碼請... – swegi

+7

你確定你在64位編譯你的程序? – gregseth

+0

'sizeof(什麼?)'。你傳遞給sizeof運算符的是什麼? –

回答

15

您的可執行文件仍在編譯爲32位二進制文​​件。嘗試將其編譯爲64位項目。

操作系統使得如果所述處理器被一個32位的環境中模擬的程序的指針的內部尺寸沒有差別...

在VS2010,頭部到配置管理器,使一個新的在「平臺」項,然後選擇x64(通常它的存在,唯一的其他選擇)

編輯:此外,還要確保你傳遞一個void*sizeof()運營商。

+1

謝謝你的回答,它對我很有幫助。 – 2power10

4

您是以64位模式還是32位模式編譯?在Visual Studio中,您需要選擇編譯的CPU類型,默認值可能是32位。

此外,請確保您的屏幕爲sizeof(void*)