如果將數(shù)組傳遞給另一個函數(shù)(不傳遞大?。?,是否可以確定數(shù)組的大???該數(shù)組的初始化類似于int array [] = {XXX} ..我知道不可能執(zhí)行sizeof,因為它會返回指針的大小。我問的原因是因為我需要在傳遞數(shù)組的其他函數(shù)中運行for循環(huán)。我嘗試了類似的東西:for( int i = 0; array[i] != NULL; i++) {........}但我注意到,在數(shù)組的近端,array [i]有時包含諸如758433之類的垃圾值,該值不是數(shù)組初始化中指定的值。
3 回答

炎炎設(shè)計
TA貢獻(xiàn)1808條經(jīng)驗 獲得超4個贊
您可以在int數(shù)組中添加一個終止符,然后手動遍歷該數(shù)組以發(fā)現(xiàn)方法中的大小。
#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);
}
該程序打?。?/p>
SizeOfMyArray: 5
這是O(n)時間復(fù)雜度運算,很糟糕。您永遠(yuǎn)不應(yīng)單步探索數(shù)組以發(fā)現(xiàn)其大小。
- 3 回答
- 0 關(guān)注
- 588 瀏覽
添加回答
舉報
0/150
提交
取消