In this context, a pointer in Rust is a reference that points to where the data exists. Pointers provide the flexibility to store data on the heap, particularly when you are uncertain about the data’s size or if the size might change over time while the memory location still exists. Rc stands for Reference counting and works by increasing the number of owners of a memory location by 1 every time a reference to that location is cloned to an Rc .