2013-04-19 2 views
1

의 배열의 크기를 얻기 :다음 I는 예를 C

I는 구조체가 : 다음

typedef struct e{ 

    int *(array[2]); <---in my case this array is a [2][69] 

}Example; 

및이 전 기능 같은 경우 :

int funct(Example *e); 

배열의 크기는 어떻게 얻을 수 있습니까?

int size =(sizeof(e->array[0])/sizeof(int)); 

을하지만 69

의 값 어떤 도움이 아주 많이 주시면 감사하겠습니다을 반환하지 않습니다

나는 시도했다.

+0

http://www.c-faq.com/, 섹션 6 –

+0

은 얼마나 많은 시간이 물어 가고있다 몇 번이고? –

답변

3

배열을 함수로 전달할 수 없거나 해당 함수를 반환 할 수 없으므로이 작업을 수행 할 수 없습니다. 배열을 인수로 전달하면 첫 번째 요소에 대한 포인터로 사라집니다. 너는 크기를 또한 통과해야 할 것이다.

생각해보십시오. 실제로 배열 (포인터가 아님! 다른 동물)을 전달할 수있는 경우, 모든 표준 라이브러리 함수가 포인터와 크기를 사용하는 이유는 무엇입니까?

+0

예, 배열은 포인터에서 diffent입니다 – kaitian521

0

당신은 ... 당신이없이 크기를 찾을 수없는 크기를 통과해야 ..

+0

고마워. 나는 제공된 배열의 크기를 계산하는 함수를 사용했다. 답장을 보내 주셔서 감사합니다! – spikestar

+0

@spikestar : 환영합니다 .. :) –