When my friend had his interview yesterday, he was asked a question: Implement a function that allocates memory space without using the *alloc or new operator, and the func
Depending on your platform you have a few options:
sbrk is also an option, but its use is discouraged and it's no longer
part of POSIX.mmap (or VirtualAlloc or CreateFileMapping on
Windows) as a source of memory, but if you want memory chunks smaller
than whole pages you'll still need to write some code to manage the
memory these functions return.Your allocator should ensure memory is properly aligned for your platform:
on some systems, unaligned memory access is an invalid operation and on
others there's a performance hit vs. aligned access. In real, production
code you'd also likely want to provide a free operation to avoid taking
over all the system's memory and locking to make your heap thread-safe.