4 ms·
> Note that `malloc` is special in the C standard as well, and AFAIK it is not possible to implement `malloc` in standard C at all. malloc() is usually implem
by mbel 8y ago
> Note that `malloc` is special in the C standard as well, and AFAIK it is not possible to implement `malloc` in standard C at all.
malloc() is usually implemented in C [0] and to be honest I'm not sure why do you think it wouldn't be? Of course you need OS API calls to actually get some memory (unless you want to operate on statically defined memory buffer) but well it's still C.
[0] https://github.com/lattera/glibc/blob/master/malloc/malloc.c https://github.com/lattera/glibc/blob/master/malloc/malloc.c
- pjmlp 8y agoThat linked implementation relies on OS primitives (sysmalloc()), implemented in C, Assembly or whatever was used to write the OS. Try to implement malloc() on bare metal, without using either Assembly or language extensions.
- TheCoelacanth 8y agoIt's C, but it's not standard C. It uses implementation defined behavior. Every compiler has some implementation defined behavior because they would be much less useful without it.