구조체 배열에 저장된 itemnumber 요소를 모두 인쇄하려고합니다. 그러나, 나는 배열의 길이 (배열의 항목 수)를 미리 알 수 없습니다. 나는 sizeof/sizeof(arr[0])
을 사용하려했지만 작동하지 않았습니다. 이 구조 배열에있는 itemnumbers
의 모든 값을 인쇄 할 수 있도록 어떻게 수행하는지에 대한 도움을 주시면 감사하겠습니다.C - 구조체 배열의 값을 표시하는 함수
코드 :에서 내 주요 :
내 구조체에서struct item beer[100]; // gets values from a text file
Call to function: displayAll(beer);
: 당신은 함수가 어떤 방식이없는 다른 함수에 매개 변수로 배열의 크기를 통과해야
void displayAll(struct item beers[]) {
int i;
for(i = 0; i < sizeof(beers); i++) {
printf("%d\n", beers[i].itemnumber); // Want it to print all of the values
}
}
디버그 what 'sizeof (beers)'가 반환합니다. - 힌트 : 그게 아니라고 생각하십시오. –
배열을 함수로 전달하면 포인터가 쇠퇴합니다. 첫 번째 요소. 그래서 기본적으로'sizeof' 연산자를 부패 된 포인터보다는 배열에 적용하여 잘못된 결과를줍니다. – coderredoc