free() Woes (Cont.) The freed memory is also not being cleared in any manner - only its first bytes are altered to add it to the free list. This is why accessing memory that was just freed often does not cause a crash - all data in the chunk still contains the values it had before we freed it. Which leads to another good rule: If you free memory pointed to by a pointer - immediately assign NULL to this pointer, to make it easier to notice invalid use of this pointer.