1

我打算用 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

1

sizeof()会给你对象的大小。也就是说MAX_PATH,不是里面的字符串的长度。为此使用strlen

于 2013-04-17T01:40:42.497 回答
0

重新安装 MinGW。这对我有用。确保以管理员身份运行设置

于 2013-04-17T13:42:15.937 回答