int g = 1;

void f(struct S s, int *pi);

struct S {
  int *pi;
  char c;
};

void f(struct S _s, int *_pi)
{ _s.c = 'z'; _s.pi = _pi; }

int main()
{
  static int a = 2; 
  auto int b = 3;
  S s(3,'x');
  S t = s;

  s.c = 'a';
  s.pi = &g;
  f(s, &g);
  f(s, &a);
  f(s, &b);
  return 0;
}