// please look into the code below, these r code for memory allocator
Code:
unsigned long long update = 0;
unsigned long long nactive = 0;
unsigned long long active_size = 0;
unsigned long long ntotal = 0;
unsigned long long total_size = 0;
unsigned long long nfail = 0;
unsigned long long fail_size = 0;
void *m61_malloc(size_t sz, const char *file, int line) {
char *ptr = NULL;
(void) file, (void) line; // avoid uninitialized variable warnings
if(ptr = malloc(sz))
{
ptr[0] = sz;
// printf("aaaaaaa%llutttttt%llusssssss%d", active_size,total_size,ptr[0]);
ptr += 4;
nactive++;
active_size += sz;
ntotal++;
total_size += sz;
}
else
{
nfail++;
fail_size += sz;
}
return ptr;
}
void m61_free(void *ptr, const char *file, int line) {
(void) file, (void) line; // avoid uninitialized variable warnings
// Your code here.
char *fptr = ptr;
size_t sz;
if(ptr)
{
fptr -= 4;
sz = fptr[0];
// printf("aaaaaaa%llutttttt%llusssssss%d", active_size,total_size,sz);
active_size -= sz;
nactive--;
}
free(ptr);
}
Bookmarks