53.7 연습문제
, 박서연[ 학부휴학 / 전기전자공학부 ]님이 작성#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
struct Person {
char name[30];
int age;
};
int main()
{
struct Person *p[5];
int oldest = 0;
int age1 = 0;
for (int i = 0; i < sizeof(p) / sizeof(struct Person *); i++)
{
p[i]=malloc(sizeof(struct Person));
}
scanf("%s %d %s %d %s %d %s %d %s %d", p[0]->name, p[0]->age, p[1]->name, p[1]->age, p[2]->name, p[2]->age, p[3]->name, p[3]->age, p[4]->name, p[4]->age);
for (int i = 0; i < 4; i++)
{
if (age1 < p[i]->age)
{
age1 = p[i]->age;
oldest = i;
}
}
printf("%s", p[oldest]->name);
for (int i = 0; i < sizeof(p) / sizeof(struct Person *); i++)
{
free(p[i]);
}
return 0;
}
어떻게 해야할지 감이 안오네요ㅠㅠ
Re: 53.7 연습문제
, 도장_ 관리자님이 작성UNIT 6 참고해서 디버거로 값을 확인해보면 나이 값을 가져오지 못합니다.
p[0]->name, p[0]->age
구조체라고 해도 안에 가리키는 것은 결국 age는 int이므로
&p[0]->age여야 합니다.
포럼 오른쪽 상단에서 53.7로 검색하면 이전 질문과 답변을 참조할 수 있습니다.
값이 입력되지 않으니 나머지 코드는 엉터리로 실행됩니다.