#include <stdio.h>

typedef struct {
  char* street;
  char* city;
  int  zip;
} address;

typedef struct {
  char* nome;
  address* addr;
} person;

int main()
{
  address jm;
  jm.street = "Rua G.H. Delgado 16";
  jm.city = "Coimbra";
  jm.zip = 3000;

  person a;
  a.nome = "João";
  a.addr = &jm;

  person b;
  b.nome = "José";
  //  (*(b.addr)).street = "Av. de Liberdade 2";
  //  (*(b.addr)).city = "Lisboa";
  //  (*(b.addr)).zip = 1000;

  person c;
  c.nome = "Maria";
  c.addr = a.addr;

  printf("A rua de %s: %s\n",a.nome,(*(a.addr)).street);
  //  printf("A rua de %s: %s\n",b.nome,(*(b.addr)).street);
  printf("A rua de %s: %s\n",c.nome,(*(c.addr)).street);

  (*(a.addr)).street = "Av. de Lousa 1";

  printf("A rua de %s: %s\n",a.nome,(*(a.addr)).street);
  // printf("A rua de %s: %s\n",b.nome,(*(b.addr)).street);
  printf("A rua de %s: %s\n",c.nome,(*(c.addr)).street);

}
  

