我的電腦從32位變成了64位,而我的操作系統是64位的Windows 7.我認爲64位操作系統中的指針應該是64位--8個字節。但是,當我在C++中使用sizeof()來獲取點的大小時,結果爲4.C++中64位計算機的指針大小是多少?
爲什麼4?
我的電腦從32位變成了64位,而我的操作系統是64位的Windows 7.我認爲64位操作系統中的指針應該是64位--8個字節。但是,當我在C++中使用sizeof()來獲取點的大小時,結果爲4.C++中64位計算機的指針大小是多少?
爲什麼4?
您的可執行文件仍在編譯爲32位二進制文件。嘗試將其編譯爲64位項目。
操作系統使得如果所述處理器被一個32位的環境中模擬的程序的指針的內部尺寸沒有差別...
在VS2010,頭部到配置管理器,使一個新的在「平臺」項,然後選擇x64
(通常它的存在,唯一的其他選擇)
編輯:此外,還要確保你傳遞一個void*
到sizeof()
運營商。
謝謝你的回答,它對我很有幫助。 – 2power10
您是以64位模式還是32位模式編譯?在Visual Studio中,您需要選擇編譯的CPU類型,默認值可能是32位。
此外,請確保您的屏幕爲sizeof(void*)
。
代碼請... – swegi
你確定你在64位編譯你的程序? – gregseth
'sizeof(什麼?)'。你傳遞給sizeof運算符的是什麼? –