2011-07-27 13 views
7

Mój komputer zmienia się z 32 do 64 bitów, a mój system operacyjny to 64 bity Windows 7. Myślę, że wskaźnik w 64-bitowym systemie operacyjnym powinien wynosić 64 bity - 8 bajtów. Jednakże, gdy używam sizeof() w C++, aby uzyskać rozmiar punktu, wynik jest 4.Jaki jest rozmiar wskaźnika w 64-bitowym komputerze w C++?

Dlaczego 4?

+0

kod prosze ... – swegi

+7

Czy na pewno skompilowałeś swój program w 64 bitach? – gregseth

+0

'sizeof (co?)'. Co przekazujesz operatorowi sizeof? –

Odpowiedz

15

Twój plik wykonywalny nadal jest kompilowany jako 32-bitowy plik binarny. Spróbuj skompilować go jako projekt 64-bitowy.

System operacyjny nie robi różnicy do wewnętrznej wielkości wskaźnika jeśli procesor emulacji program w środowisku 32-bitowym ...

W VS2010, udać się na menedżera konfiguracji, wykonać nowy wpis w platformie „” i wybierz x64 (zazwyczaj jest to tylko inna opcja istnieje)

EDIT: Ponadto, upewnij się, że przepuszczenie void* operatorowi sizeof().

+1

Dziękuję za odpowiedź, bardzo mi to pomaga. – 2power10

4

Czy kompilujesz w trybie 64-bitowym lub 32-bitowym? W Visual Studio musisz wybrać typ procesora kompilacji, a domyślny może być 32-bitowy.

Upewnij się także, że wykonujesz sizeof(void*).

Powiązane problemy