1
所以我试图找出一种方法来迭代,虽然数组传递到一个函数而不知道大小。我用我的代码遇到无限循环,因为数组不是NULL终止。由于数组通过函数变成了指针,我不能使用sizeof(Array)/ sizeof(int)来获取元素的数量。有没有什么办法没有NULL终止我的数组?通过函数遍历c数组
我的查找功能:
int find(const int* arr, int val)
{
int pos = 0;
while (arr != NULL)
{
if (*arr == val)
{
return pos;
}
pos++;
}
return -1;
};
我的主:
int IntArr[] = { 1, 2, 3, 4, 5 };
int index = find(IntArr, 4);
cout << "find(IntArr, 4)" << endl;
cout << "index: " << index << endl << endl;
如果你不知道大小,你是SOL。如果你猜测,你会猜错。你说没有终结者?好的,那么你必须通过其他方式来传递长度,就像在另外一个参数中一样。 – Deduplicator 2014-09-28 18:33:48
传递数组的大小,或使用'std :: array'或'std :: vector'并通过引用传递,因为他们知道它们的大小(或者传递它们的开始和结束迭代器) – 2014-09-28 18:35:40
PS有'std :: find'函数 – 2014-09-28 18:39:43