1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#include "mem.h"
static void aff_ap(int **pp, int n)
{
int i;
for (i = 0; i < n; i++)
{
printf ("[%d]%p ", i, pp[i]);
}
printf ("\n");
}
int main (void)
{
int ok = mem_init (4, 16);
if (ok)
{
mem_trace();
{
int *ap[5] = {
0};
int i;
for (i = 0; i < 5; i++)
{
ap[i] = mem_malloc(2 * (i + 1));
aff_ap(ap, 5);
mem_trace();
}
mem_free(ap[1]), ap[1] = NULL;
aff_ap(ap, 5);
mem_trace();
mem_free(ap[3]), ap[3] = NULL;
aff_ap(ap, 5);
mem_trace();
mem_free(ap[0]), ap[0] = NULL;
aff_ap(ap, 5);
mem_trace();
mem_free(ap[4]), ap[4] = NULL;
aff_ap(ap, 5);
mem_trace();
mem_free(ap[2]), ap[2] = NULL;
aff_ap(ap, 5);
mem_trace();
}
mem_end ();
}
return 0;
} |