Frage im Vorstellungsgespräch bei Intel Corporation

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

Antwort im Vorstellungsgespräch

Anonym

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