在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 charArray[] = "i am a string";
那么 \0
已经附加到数组的末尾。在这种情况下,答案(标记为已接受)可以直接使用。