#include <stdio.h>
int x=2;
int *px;

void f2(int);

void f1() 
{
    int b=2*x;
    px=(int *) malloc(sizeof(int)); 
    *px = b;
    if (*px>0)
       {x--; f2(b);}
}
void f2 (int x)
{
    static int b=3;
    b--;
    *px=b;
    if ((*px<x) && (b>0))
      f1();
    if (x+b>2)
      free(px);
}

main()
{
    float x=0.0;
    px=(int *) malloc(sizeof(int));
    *px=x+1;
    f2(*px);
    f1();
}

