| struct-2.c - A move_person function with structs parameters - does not work. | Lecture 1 - slide 22 : 34 Program 3 |
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char road[15];
int roadNumber;
char town[20];
} address;
typedef struct{
int idNumber;
char firstName[10],
lastName[20];
address location;
} person;
void print_person(const person p){
printf("%s %s\n%s %-4d\n%s\n\n",
p.firstName, p.lastName,
p.location.road, p.location.roadNumber,
p.location.town);
}
/* PROBLEMATIC! Compiles, runs, but does not work as intended */
void move_person(person p, address new_address){
p.location = new_address;
}
int main(void) {
person morten =
{190583, // Initializer
"Morten", "Madsen",
{"Bredgade", 23, "Middelfart"}
};
address aalborg_address =
{"Boulevarden", 33, "Aalborg"};
print_person(morten);
move_person(morten, aalborg_address);
print_person(morten);
return 0;
}