确定数组的大小(如果传递给函数)

如果将数组传递给另一个函数(不传递大小),是否可以确定数组的大小?该数组的初始化类似于int array [] = {XXX} ..


我知道不可能执行sizeof,因为它会返回指针的大小。我问的原因是因为我需要在传递数组的其他函数中运行for循环。我尝试了类似的东西:


for( int i = 0; array[i] != NULL; i++) {

........

}

但我注意到,在数组的近端,array [i]有时包含诸如758433之类的垃圾值,该值不是数组初始化中指定的值。


暮色呼如
浏览 329回答 3
3回答

四季花海

您可以在int数组中添加一个终止符,然后手动遍历该数组以发现方法中的大小。#include<iostream>using namespace std;int howBigIsBareArray(int arr[]){&nbsp; &nbsp; int counter = 0;&nbsp; &nbsp; while (arr[counter] != NULL){&nbsp; &nbsp; &nbsp; &nbsp; counter++;&nbsp; &nbsp; }&nbsp; &nbsp; return counter;}int main(){&nbsp; &nbsp; int a1[6] = {1,2,3,4,5,'\0'};&nbsp; &nbsp; cout << "SizeOfMyArray: " << howBigIsBareArray(a1);}该程序打印:SizeOfMyArray: 5这是O(n)时间复杂度运算,很糟糕。您永远不应单步探索数组以发现其大小。
打开App,查看更多内容
随时随地看视频慕课网APP