나는 다음과 같은 코드를 가지고 : 함수 list_passengers 내 라인 fl.passengers-에 대한내 코드에서 세그먼트 오류가 발생 했습니까?
main()
{
struct passenger_node {
char *name;
struct passenger_node *next;
};
struct flight {
char airline[MAXNAME];
int number;
struct passenger_node *passengers;
};
// New passengers are added to the front of the list of passengers.
void add_passenger(char *name, struct flight *flp) {
struct passenger_node n;
n.name = malloc(strlen(name)+1);
strncpy(n.name, name, strlen(name)+1);
n.next = flp->passengers;
};
void list_passengers(struct flight fl) {
printf("%s", fl.passengers->name);
}
struct flight my_flight;
strcpy(my_flight.airline, "Air");
my_flight.number = 111;
my_flight.passengers = NULL;
add_passenger("MMM", &my_flight);
list_passengers(my_flight);
}
내가 세그먼트 오류를 얻고있다> 이름을? 아무도 왜 이것이라고 말할 수 있습니까?
분명히 게시 할 코드가 귀하의 PC에있는 코드가 아닙니다. C는 함수 내에서 함수를 선언 할 수 없으므로 제시된 코드는 C 컴파일러에서 컴파일되지 않습니다. 사용중인 코드를 게시하십시오. – RedX
@RedX : gcc는이 비표준 코드를 허용합니다 : http://ideone.com/OEomZQ –
@sharth 명확히 해 주셔서 감사합니다. 이 (IMHO 끔찍한) gcc 확장에 대해 몰랐습니다. – RedX