You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zk/tests/fixtures/full-sample/tdrj.md

28 lines
1.0 KiB
Markdown

# The Stack and the Heap
Both the Stack and the Heap are parts of the memory that is accessible to an app during runtime.
## Stack
* The Stack stores values in a last in, first out fashion.
* All values stored must have a known fixed size.
* Data with unknown or changeable size must be stored on the Heap instead.
* Are stored on the Stack:
* Arguments and local variables when calling a function.
## Heap
* The Heap is less organized than the Stack
* When *allocating on the Heap*, the memory allocator:
1. Looks for an empty spot for the requested size.
2. Marks the spot as reserved.
3. Returns a pointer to the spot.
* The pointer is then usually stored on the Stack. When we want to access the data, we must follow the pointer to the Heap.
## Stack vs Heap
* *Pushing to the Stack* is faster than *allocating on the Heap* because the Stack doesn't need to find an empty spot.
* Accessing data from the Stack is also faster because we don't have to jump around in the memory and to follow pointers.
:programming: