2014-05-14 3 views
-2

배열에 인수를 전달하는 함수가있는 경우. 크기가 인수로 전달되지 않으면 호출 된 함수에서 배열 크기를 계산할 수있는 방법이 있습니까? 여기 는 니펫을 경우 : array_size() 기능 내부배열 크기를 계산하는 방법

void array_size(int array[]) 
{ 
    //How i can calculate the array size here 
} 

int main() 
{ 
    int a[]={1,2,3}; 
    array_size(a); 
} 

답변

1

에서, "배열"포인터입니다. 호출 함수에서 첫 번째 요소에 대한 포인터로 변환됩니다.

크기를 알고 싶다면 주위를 지나쳐야합니다. main() 함수에서 a 배열하고는

array_size(a, number_of_elements); 
//  ^the array is converted to a pointer to its first element 
함수에 그 패스 (업데이트 할 필요가있는) 다음

number_of_elements = sizeof a/sizeof *a; 

으로 요소의 수를 계산할 수있다

관련 문제