작성
·
171
0
저는 포멧변수에 담지 않고 함수화를 하고 싶어서
함수화를 시켰는데 , 함수의 아규먼트 부분을 어떻게 넣어야하는 지 잘 모르겠네요
다른 곳은 다 오류없이 넣어지는데 중첩구조체 부분에 어떻게 채워넣어야 할지 모르겠어서 이중포인터를 넣었는데 정답이 아닌지 res.guest, res.host 이 알규먼트 부분이 오류가 생깁니다
중첩구조체를 함수화 할 시 어떤 파라미터를 넣어야하는지 혹시 알 수 있을까요??
void invite(char** g_name1,char** h_name2,char*h_given,char* food, char* place , int year, int month, int day, int hours, int minutes)
invite(res.guest, res.host, res.host.given, res.food,
res.place, res.year, res.month, res.day, res.hours, res.minutes );
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define LEN 20
struct names { //A structure
char given[LEN]; //first name
char family[LEN]; //last name
};
struct reservation { //Another structure
struct names guest; //a nested structuer
struct names host; //one more nested structure
char food[LEN];
char place[LEN];
//time
int year;
int month;
int day;
int hours;
int minutes;
};
void invite(char** g_name1,char** h_name2,char*h_given,char* food, char* place , int year, int month, int day, int hours, int minutes)
{
printf("Dear %s,\nI would like to serve you %s.\n\
Please visit the %s mansion on %d/%d/%d at %d:%d.\n\
Sincerely,\n\
%s",g_name1,food,h_given,day,month,year,hours,minutes,h_name2);
}
int main(void)
{
struct reservation res = {
.guest = {"Nick", "Carraway"},
.host = {"jay", "Gatsby"},
.place = {"the Gatsby mansion"},
.food = {"Escargot"},
.year = 1925,
.month = 4,
.day = 10,
.hours = 18,
.minutes = 30
};
invite(res.guest,res.host,res.host.given,res.food,
res.place,res.year,res.month,res.day,res.hours,res.minutes );
return 0;
}
답변 1
0
조금 어렵게 생각하신 것 같네요.
구조체 안의 구조체의 멤버도 다음과 같은 방식으로 접근이 가능합니다.
res.guest.given
구조체 자체를 매개변수로 사용하고자 하신 것이라면 14.7 강의에서 참고하실 수 있습니다.