在 C++ 中,数组不能简单地作为参数传递。这意味着如果我创建一个这样的函数:
void doSomething(char charArray[])
{
// if I want the array size
int size = sizeof(charArray);
// NO GOOD, will always get 4 (as in 4 bytes in the pointer)
}
我无法知道数组有多大,因为我只有一个指向数组的指针。
在不更改方法签名的情况下,我有哪种方式来获取数组的大小并迭代它的数据?
编辑:只是关于解决方案的补充。具体来说,如果 char 数组是这样初始化的:
char charArray[] = "i am a string";
然后\0
已经附加到数组的末尾。在这种情况下,答案(标记为已接受)开箱即用,可以这么说。