Re:Tell HN: C Experts Panel – Ask us anything about C
by slavik81 on Wednesday April 15, 2020 @04:58AM
(#22875793)
realloc(foo, 0) was changed to no longer free in C99.
A rant on the subject: https://github.com/Tarsnap/libcperciva/commit/cabe5fca76f6c3...
Unsigned types have their own issues, though: they overflow at "small" values like -1, which means that doing things like correctly looping "backwards" over an array with an unsigned index is non-trivial.
> On the other hand, I just wrote a proposal to WG14 to make zero-byte reallocations undefined behavior that was unanimously accepted for C2x.
You're saying that realloc(foo, 0) will no longer free the pointer?