无法输出 int 作为 sizeof() 的结果



我想在c++中编写一个程序,它将为我同步两个目录,并且对于它的一部分,我需要得到一个字符数组的大小。我使用的代码在

下面
#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显示"cp .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++)。

我们非常需要帮助,也很感激。

谢谢!

sizeof()将给出对象的大小。这是MAX_PATH,而不是里面字符串的长度。使用strlen

重新安装MinGW。这对我很有效。通过

确保以admin身份运行安装程序。

最新更新