Was ist die Zeigergröße in 64-Bit-Computer in C ++?

7

Mein Computer ist von 32 Bit auf 64 Bit geändert, und mein Betriebssystem ist 64 Bit Windows 7. Ich denke, der Zeiger in 64 Bit Betriebssystem sollte 64 Bit - 8 Byte sein. Wenn ich jedoch sizeof () in C ++ verwende, um die Größe eines Punktes zu erhalten, ist das Ergebnis 4.

Warum 4 ??

    
2power10 27.07.2011, 08:23
quelle

2 Antworten

15

Ihre ausführbare Datei wird immer noch als 32-Bit-Binärdatei kompiliert. Versuchen Sie es als 64-Bit-Projekt zu kompilieren.

Das Betriebssystem hat keinen Einfluss auf die interne Größe eines Zeigers, wenn der Prozessor das Programm in einer 32-Bit-Umgebung emuliert ...

Gehen Sie in VS2010 zum Konfigurationsmanager, machen Sie einen neuen Eintrag unter 'Plattform' und wählen Sie x64 (normalerweise ist es die einzige andere Option dort)

BEARBEITEN: Stellen Sie außerdem sicher, dass Sie void* an den Operator sizeof() übergeben.

    
Schnommus 27.07.2011, 08:25
quelle
4

Kompilieren Sie im 64-Bit-Modus oder im 32-Bit-Modus? In Visual Studio benötigen Sie den CPU-Typen der Zusammenstellung zu wählen, und der Standard könnte 32-Bit sein.

Stellen Sie außerdem sicher, dass Sie sizeof(void*) ausführen.

    
Eli Iser 27.07.2011 08:25
quelle

Tags und Links