1

2 つのディレクトリを同期するプログラムを C++ で作成しようとしていますが、その一部として、char 配列のサイズを取得する必要があります。私が使用しているコードは以下のとおりです

#include <iostream>
#include <Windows.h>
using namespace std;

int main() {
    char binaryPath[MAX_PATH];
    GetModuleFileName(NULL, binaryPath, MAX_PATH);
    int r = sizeof(binaryPath);

    return 0;
}

とにかく、そのコードは正常にコンパイルおよび実行されます。問題は、binaryPath 変数を試してみると発生します。メインブロックでは、 r の割り当て/宣言の後、 r を画面に出力しようとすると、

cout << r;

バイナリは実行を停止します。Windows で「Cpp.exe」が動作を停止したと表示され、プログラムを強制終了する必要があります。理由はまったくわかりません。

以下のプログラムのように、もっと単純なバージョンを試しても

#include <iostream>
using namespace std;
int main() {
    int r = 7;
cout << sizeof(r);
return 0;
}

結果は同じです。舞台裏で sizeof() を使ってやりたいことがほとんどできるように思えますが、出力しようとするとすぐに動作が停止します。

Windows 8を実行しているMacでMinGWを使用しています(b / c win8は過去にいくつかの問題を引き起こしました.c ++を壊すことができたかどうかはわかりません)。

助けが切実に必要であり、感謝しています。

ありがとう!

4

2 に答える 2

0

MinGW を再インストールします。それは私のために働いた。ただし、必ず管理者としてセットアップを実行してください

于 2013-04-17T13:42:15.937 に答える