Given: void *alloc1(int size) void free1(void *ptr) Implement: alloc2(ptr, size) free2(ptr)
Anonimo
Allocate an extra buffer to the requested size at the begining of the buffer save the requested size (so when you need to delete it you can take it freom there, don't forget to free extra memory this as well). alloc: ===== [size] *ptr[0] = size; alloc1(size + sizeof(int)); free: ==== free1(ptr - sizeof(int), *ptr[0] + sizeof(int))