2012-09-28 5 views
3

나는 int 배열을 가지고 있으며 배열의 요소 수를 찾아야합니다. 나는 그것이 sizeof와 관련이 있다고 알고 있지만 정확하게 사용하는 방법을 모르겠습니다. 배열배열의 요소 수를 찾는 방법

int numElements = sizeof(data)/sizeof(data[0]); 

하지만이 단지 작품을, 그리고 당신이 함수에 배열을 통과 한 경우 작동하지 않습니다 : 배열로 예를

int data2[]={a,b,c,d}; 

답변

7

당신이 할 수있는 그 시점 배열에서 포인터에 쇠약하므로, sizeof은 포인터의 크기를 반환합니다.

#define ARRAY_LENGTH(x) (sizeof (x)/sizeof (x)[0]) 
+2

1 :

은이 매크로에 싸서 볼 수 있습니다. 이것을 매크로에 붙여 두는 것이 좋습니다. 다른 배열에서 사용하기 위해 복사하고 붙여 넣으면'data'의 발생을 잊어 버릴 수 있기 때문입니다 : #define lengthof (x) (sizeof (x)/sizeof (x) [0])' –

+2

@j_random_hacker ARRAY_LENGTH는 그 길이가 걸릴 수있는 유일한 방법이기 때문에 호출합니다. –

관련 문제