Skip to content

Comment on Perhaps Rust Needs "Defer"parent

Comments

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#p...

doesn'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

Accepting 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.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.