#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

typedef unsigned int uint;

typedef struct {
	char  *id;
        void  *adr;
} data;

char *ptr;
data  mem[64], tmp;
int   max = 0;
char  bfr[64];

void proc( int x, int*y) { int l; // trace ?
}

int main(void)
{
int i;
mem[max].id = "& max"; mem[max].adr = & max; max++;
mem[max].id = "& ptr"; mem[max].adr = & ptr; max++;
mem[max].id = "  ptr"; mem[max].adr = ptr;   max++;
// trace ?
proc( max, &max);

ptr = (char*) malloc(1024);
mem[max].id = " ptr (alloue)"; mem[max].adr = ptr;  max++;

// tri ?

for( i = 0; i < max; i++ )
 printf("\n%-12p : %12u : %s", mem[i].adr, (uint) mem[i].adr, mem[i].id);
printf("\n\nZones memoires :\n");
sprintf(bfr, "cat /proc/%d/maps | grep -v so", getpid() );
system( bfr );
printf("\n");
return 0;
}
