#include <stdio.h>
#include <stdlib.h>

struct A;

struct A *getA(void);
void printA(struct A*);

int main(void) {
	struct A *p = getA();
	printA(p);
	free(p);
	return 0;
}

struct A { int a; };

struct A *getA(void)
{
  struct A *p = malloc(sizeof *p);
  p->a = 42;
  return p;
}
void printA(struct A* p)
{
	printf("%d\n", p->a);
}