Guide: ownership

Whew. This section was so important, I saved it for last.

/cc @wycats, @nikomatsakis
It's most common with a pointer to a mutable structure and another pointer to its part, mutable or not. In C++, an insertion into a vector can invalidate all iterators and references. There are several other rules. In Rust, every data structure is borrowed for the lifetime of an iterator.

Iterator invalidation is basically pointer invalidation: mutation occurs somewhere else, and suddenly a pointer points to uninitialized memory.