如果将数组传递给另一个函数(不传递大小),是否可以确定数组的大小?该数组的初始化类似于int array [] = {XXX} ..我知道不可能执行sizeof,因为它会返回指针的大小。我问的原因是因为我需要在传递数组的其他函数中运行for循环。我尝试了类似的东西:for( int i = 0; array[i] != NULL; i++) {........}但我注意到,在数组的近端,array [i]有时包含诸如758433之类的垃圾值,该值不是数组初始化中指定的值。
3 回答
四季花海
TA贡献1811条经验 获得超5个赞
您可以在int数组中添加一个终止符,然后手动遍历该数组以发现方法中的大小。
#include<iostream>
using namespace std;
int howBigIsBareArray(int arr[]){
int counter = 0;
while (arr[counter] != NULL){
counter++;
}
return counter;
}
int main(){
int a1[6] = {1,2,3,4,5,'\0'};
cout << "SizeOfMyArray: " << howBigIsBareArray(a1);
}
该程序打印:
SizeOfMyArray: 5
这是O(n)时间复杂度运算,很糟糕。您永远不应单步探索数组以发现其大小。
- 3 回答
- 0 关注
- 328 浏览
添加回答
举报
0/150
提交
取消