Any reasons why this can not be standard behavior of free()?
free()
multiple pointers pointing to the same object:
#include #i
In C, calling a function can never alter the value of the parameters you pass in, so if free(p) altered the value of p by setting it to NULL then this behaviour would be very non-standard indeed.
free(p)
p
NULL