Stack vs Heap Memory in Rust
Stack vs Heap Memory in Rust
Understanding where data lives is essential for writing efficient Rust code.
The Stack
- Fast, LIFO (Last In, First Out) allocation.
- All data stored on the stack must have a known, fixed size at compile time.
- Primitive types, fixed arrays, and function frames live on the stack.
The Heap
- Dynamic memory allocated at runtime.
- The operating system locates a contiguous region of memory, marks it in use, and returns a pointer.
- Slower than stack allocation; requires dereferencing pointers.
- Dynamically sized types like
StringandVec<T>store metadata on the stack (pointer, length, capacity) pointing to heap buffers.