struct address
{
  int street_number;
  char * street_name;
  char * city;
  char * state;
};

char * copy_string(char * input);
int string_length(char * my_string);

void input_address(struct address * a1);
void print_address(struct address a1);

struct address shallow_copy(struct address a1);
struct address deep_copy(struct address a1);

void foo1(struct address * a1);
void foo2(struct address a1);
void foo3(struct address * a1);
