c++ - 由于 sizeof() 无法输出 int

标签 c++ windows windows-8 mingw sizeof

我想用 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 变量时,问题就来了。在主 block 中,如果我尝试像这样将 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++)。

非常需要和感谢帮助。

谢谢!

最佳答案

sizeof() 将为您提供对象的大小。那就是MAX_PATH,不是里面字符串的长度。为此使用 strlen

关于c++ - 由于 sizeof() 无法输出 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16049936/

相关文章:

windows - 如何获取文件放置在 Windows 目录中的日期/时间?

windows - 如何使用 Tensorflow 在分割对象检测中使用 PNG 掩码

windows - WinRT 和软件 ClearType 字体渲染

c++ - 在抛出过程中构造对象时抛出异常?

c++ - 为我的环形缓冲区实现测试 "cache not flushed to main memory"

c++ - 使用已删除的指针地址

c++ - 在 C++ 中同时做多项工作

c++ - 克服 n^2 运行时程序

git - 不能 `git rm` 以前跟踪的文件

linux - Windows 8 中使用哪个版本的 RDP?