4 を出力する次のプログラムがあります。このプログラムを Windows 7 64 ビットで実行しています。64 ビット プラットフォームの場合は 8 を出力するべきではありませんか? 前もって感謝します。
#include <stdio.h>
void main()
{
printf("%d", sizeof(void*));
}
4 を出力する次のプログラムがあります。このプログラムを Windows 7 64 ビットで実行しています。64 ビット プラットフォームの場合は 8 を出力するべきではありませんか? 前もって感謝します。
#include <stdio.h>
void main()
{
printf("%d", sizeof(void*));
}
C などのコンパイル済み言語を使用する場合、ポインターのサイズは、コードを実行しているプラットフォームによって決まりません。コードをコンパイルしたプラットフォームにのみ依存します。
Windows 7 64 ビットでは、32 ビット プラットフォーム用にコンパイルされたコードを実行できます。プログラムの出力から判断すると、コードは Win-32 用にコンパイルされているようです。
Visual Studio 2010 で、C/C++ プロジェクトのプロパティ ページに移動し、Active (x64)
[プラットフォーム] ドロップダウンで が選択されていることを確認します (既定では Win32 です)。ドロップダウンで が利用できない場合x64
は、 をクリックして、プロジェクトのプラットフォームを[Configuration Manager...]
選択します。x64
[コピー元...] ダイアログが開いた場合は、クリック[OK]
して閉じます。プログラムは、再コンパイル後に 64 ビット モードで実行する必要があります。