• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

(14.11)강의 6:00 6:20질문

22.08.25 00:57 작성 조회수 109

0

제목 없음.png제목 없음.png

질문1 6:00 지점에서 pf->values와 &pf->values값은 주소가 동일한데 이것은 임의의 배열 a[2][5]에서 a[0]와 &a[0]의 주소가 똑같은 것처럼 일종의 약속과 같은 것으로 보면 되는 것인가요?

질문2 6:20 지점에서 sizeof(pf->values)가 동적할당을 받았음에도 0이 나오는 것은 신축성 배열 멤버의 특징이다라고 그냥 받아들여야 하는 것인가요?

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2022.08.25

질문 1

음 네 조금 더 정확하게는 values가 배열이라 그렇습니다.

가령 아래의 코드를 보세요.

printf("Address of pf->averages %lld\n", (long long)&pf->average);
printf("Value of pf->averages %lld\n", (long long)pf->average);

위 코드까지 추가한 결과는 다음과 같이 다르게 출력됩니다.

Address of pf->values 105553133437568
Value of pf->valuse 105553133437568
Address of pf->averages 105553133437560
Value of pf->averages 0

"배열(values)의 주소" 관점에서 pf->values와 &pf->values값이 무엇을 가리키는지 잘 따라가보세요.

질문2

그냥 받아들이기보다는 반대로도 한 번 생각해보세요.

결과가 0이 아니게 하려면 어떤 코드를 추가해야 할까요?

여기에 맞춰 생각해보면 이해하는데에 도움이 될 것입니다.