2014-12-06 48 views
-2
int size(int arr1[]) 
{ 
int size1=sizeof(arr1)/sizeof(int); 
cout<<size1<<endl; 
return size1; 
} 
void main() 
{ 
    int b[]={1,2,3,4,5}; 
    int size2 = size(b); 
    cout<<size2<<endl; 
    for (int i=0;i<size2;i++) 
    { 
     cout<<b[i]; 
    } 
} 

我已經把B []功能劃分成大小爲(),並檢查尺寸然後返回值。然而,它只是返回1作爲答案。 任何人都可以請幫我解決這個問題。爲什麼sizeof運算符在傳遞給方法的數組上使用時會返回錯誤的值?

的C++

+0

相關:http://stackoverflow.com/questions/22677415/why-do-c-and-c-compilers-allow-array-lengths-in-function-signatures-when-they/ – 2014-12-06 12:29:37

回答

2

sizeof(arr1)在功能初學者返回而不是整個陣列的指針的大小。
這就是語言。

......你確定數組大小而不sizeof
要麼通過第二個參數和數量,或者填寫陣列的方式
你可以找到最終因爲某種價值是存在的(和其他地方)

相關問題