Pergunta de entrevista da empresa Intel Corporation

Given: void *alloc1(int size) void free1(void *ptr) Implement: alloc2(ptr, size) free2(ptr)

Resposta da entrevista

Sigiloso

7 de mai. de 2014

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))