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

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
您可以在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 關注
- 587 瀏覽
添加回答
舉報
0/150
提交
取消