2011-07-27 14 views
7

Bilgisayarım 32 bitten 64 bie, işletim sistemim 64 bit Windows 7'dir. Sanırım 64 bit işletim sisteminde işaretçi 64 bit - 8 bayt olmalıdır. Ancak, bir noktanın boyutunu almak için C++ 'da sizeof() kullandığımda, sonuç 4.C++'da 64 bit bilgisayardaki işaretçi boyutu nedir?

Neden 4 ??

+0

kod lütfen ... – swegi

+7

Programınızı 64 bit olarak düzenlediğinizden emin misiniz? – gregseth

+0

'sizeof (what?)'. Sizeof operatörüne ne aktarıyorsunuz? –

cevap

15

Uygulamanız hala 32 bitlik bir ikili olarak derleniyor. 64 bitlik bir proje olarak derlemeyi deneyin.

işletim sistemi işlemcisi 32-bit ortamında programı taklit takdirde bir işaretçi iç büyüklüğü için herhangi bir fark ... VS2010, yapılandırma yöneticisine fazla kafadaki

, yeni bir hale yapar Ayrıca, bir void*sizeof() operatöre geçen emin olun: 'platform' altında giriş ve x64 seçeneğini

DÜZENLEME (genellikle orada diğer tek seçenek var).

+1

Cevabınız için teşekkür ederim, bana çok yardımcı oluyor. – 2power10

4

64 bit modda veya 32 bit modda mı çalışıyorsunuz? Visual Studio'da derlemenin CPU tipini seçmelisiniz ve varsayılan değer 32-bit olabilir.

Ayrıca, sizeof(void*)'u yaptığınızdan emin olun.