26 ms·
Such C runtime is not standard-compliant [1]: > The free function causes the space pointed to by ptr to be deallocated, that is, made available for further all
by lifthrasiir 2y ago
Such C runtime is not standard-compliant [1]:
> The free function causes the space pointed to by ptr to be deallocated, that is, made available for further allocation. If ptr is a null pointer, no action occurs.
[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf#page=270 https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf#p...
- dathinab 2y agodoesn't matter 50 years ago non standard compliance was the norm, even today it is quite common (to use non compliant extensions) and there is also stuff like caches, arena allocations, jemalloc etc. which might not be linked against libc/free and might require manual free function usage, external APIs providing a their own free/destruction functions is really really normal
- lifthrasiir 2y agoAccepting a null pointer in free is a very easy part of the conformance and I am yet to see a libc implementation that doesn't so far, so your statement should be pretty much outdated even if it were true. And since malloc-free interface is so popular in C, other allocators are also commonly modelled after that (plus their own APIs) anyway; jemalloc for example has an usual free with the standard interface.