구조체를 호출하여 void 함수에 인수로 넣은 다음 인수가 동일한 구조체를 갖는 다른 void 함수를 호출하므로 포인터와 결과를 모두 넣습니다. 보이지 않습니다. 별도로 호출하면 작동하지만 중첩 된 함수는 작동하지 않습니다.중첩 된 함수의 구조체 호출 포인터
#include <stdio.h>
#include <stdlib.h>
typedef struct date {
int day;
int month;
int year;
} date;
void next_day(date *d,int days)
{
if(d->day < days) {
int m = d->day + 1;
d->day = m;
}
else
{
int m = d->year + 1;
d->year = m;
d->month = 1;
}
}
void tom(date *d)
{
switch(d->month)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
next_day(&d,31);
break;
case 4: case 6: case 9: case 11:
next_day(&d,30);
break;
case 2:
if(d->year % 4 == 0)
next_day(&d,29);
else
next_day(&d,28);
break;
}
}
int main(void)
{
//date d = malloc(sizeof(date));
date d;
printf("Enter day, month, year: ");
scanf("%d %d %d",&(d.day),&(d.month),&(d.year));
tom(&d);
printf("The next day is: %d %d %d",d.day,d.month,d.year);
return 0;
}
코드를 찾는 사람에게 미리 감사드립니다.
결과가 * 표시되지 않음을 의미합니까? –