A use-after-free error occurs when a program accesses memory after it has been deallocated. The memory may have been reused, cleared, or still contain old data, so the result is unpredictable. section 2.2
Manual memory management makes this mistake easy to create: every allocated value must be freed exactly once, yet later code may still try to use it. section 2.2
