
// Example C Program for Lifetime of Variables

#include <stdio.h>
#include <malloc.h>

int a, *pp;
float c;

void p1 (int x, int y);
void p2 (int x, int y);

void p1 (int x, int y)
{
    int c=x;
    pp = &c; 
    if (x<2) 
      {y=x+1; p2(x,*pp);};
}

void p2 (int x, int y)
{
    float *pp;
    static int a=0;
    a++;
    c=a*0.3;
    pp = (float *)malloc(sizeof(float));
    *pp = c;
    if (y<2)  
      {x=y+1; p1(x,x);}
    else p2(x-1,x-1);
    free(pp);
}

main()
{
    a= 1; c=1.0;
    p2(a,2);
}
