작성
·
148
0
질문1 6:00 지점에서 pf->values와 &pf->values값은 주소가 동일한데 이것은 임의의 배열 a[2][5]에서 a[0]와 &a[0]의 주소가 똑같은 것처럼 일종의 약속과 같은 것으로 보면 되는 것인가요?
질문2 6:20 지점에서 sizeof(pf->values)가 동적할당을 받았음에도 0이 나오는 것은 신축성 배열 멤버의 특징이다라고 그냥 받아들여야 하는 것인가요?
답변 1
0
질문 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이 아니게 하려면 어떤 코드를 추가해야 할까요?
여기에 맞춰 생각해보면 이해하는데에 도움이 될 것입니다.