53.7 심사문제 scanf &
, 김 철수님이 작성int a = 0;
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
{
p[i] = malloc(sizeof(struct Person));
}
for (int i = 0; i < sizeof(p) / sizeof(struct Person*); i++)
scanf("%s %d", p[i]->name, &p[i]->age);
for (int i = 1; i < sizeof(p) / sizeof(struct Person*); i++)
{
if (p[i]->age > p[a]->age)
a = i;
}
printf("%s\n", p[a]->name);
위처럼 scanf 안의 p[i]->age 앞에는 & 를 써야 통과가 되는데 이유가 무엇인가요?
Re: 53.7 심사문제 scanf &
, 도장_ 관리자님이 작성p[i]->age가 가리키는 대상이 int입니다. int 변수에 값을 입력할 때는 &가 앞에 붙어야 합니다. UNIT 11을 보시면 int 타입에는 &를 사용하는 것을 알 수 있습니다.
포인터 구조체 등에 현혹되지 말고 최종적으로 가리키는 타입이 무엇인지 알면 됩니다.