This is the first breaking change that C made, which was making
realloc(ptr, 0) have UB instead of being roughly equivalent to
C has been known to be hesitant to making 'breaking' changes such as being extra careful to add
_Ugly keywords that will not conflict with existing codebases.
So why did they see it necessary to undefine
realloc(ptr, 0)? What problems did requiring that to have defined behavior cause?