我试图计算数组中元素的个数,并且被告知,该行如何计算char数组中的元素数量?
int r = sizeof(array)/sizeof(array[0])
会给我数组中元素的个数。我发现这个方法可以工作,至少对于int数组来说。但是,当我尝试这些代码时,事情就会崩溃。
#include <iostream>
#include <Windows.h>
using namespace std;
int main() {
char binaryPath[MAX_PATH];
GetModuleFileName(NULL, binaryPath, MAX_PATH);
cout << "binaryPath: " << binaryPath << endl;
cout << "sizeof(binaryPath): " << sizeof(binaryPath) << endl;
cout << "sizeof(binaryPath[0]: " << sizeof(binaryPath[0]) << endl;
return 0;
}
,当该程序运行binaryPath的价值是
C:\Users\Anish\workspace\CppSync\Debug\CppSync.exe
似乎有通过的sizeof返回的大小(以字节为单位?位?IDK的,可能有人得解释一下吗?)的260线
sizeof(binaryPath[0]);
给出1.
显然然后除以一个260的值给出了260的结果,WH ich不是数组中元素的数量(按我的计算,它是42左右)。有人能解释我做错了什么吗?
我有一个偷偷摸摸的怀疑,实际上并不是一个数组(我来自Java和python),但我不确定所以我在问你们。
谢谢!
像我作为一个答案说: http://stackoverflow.com/questions/16049936/cant-output-int -s-result-of-sizeof 但我被告知这不是正确的答案,因为它与你的代码崩溃无关。也许你想回到这个问题并解释(以防其他人遇到类似的问题)修复是什么...... –
在完全不同的说明中,你写了'using namespace std;'在那里,还是它是通过某种工具加入的吗?只是寻找信息,不涉及任何判断。 –
'char'数组的元素数量是'MAX_PATH'。它是如此简单。 – juanchopanza