Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I mean, this is just being pedantic, but you could in theory declare a giant uninitialized non-local array

    uint8_t my_memory[4*1024*1024*1024];
and some additional globals for housekeeping[1], and use that as your backing memory for your malloc implementation written entirely in "standard C"[2]. And that usually does not even waste any memory, since my_memory will be in the zero-filled BSS section and the actual backing pages only allocated on demand by the OS once you write on them for the first time.

Of course in reality there's probably a few "non-standard"[2] system calls in the path, mostly mmap.

[1] Not necessarily, you can place them at special places in your my_memory array by convention, e.g. at the start of the array.

[2] I assume that we're excluding standards on other layers like POSIX, otherwise it's trivial.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: