4 lessons
The memory layout of a running program
What actually happens in RAM the instant your compiled program starts running — the stack, the heap, and the two static regions, explained with a bedroom-cleaning analogy.
Activation records: what a function call actually pushes onto the stack
The exact contents of a stack frame, tracing a real recursive function call by call, and why forgetting the return address would break everything.
Array address calculation, and static vs stack vs heap allocation
The classic numerical: computing exactly which memory address a[i][j] refers to, for both row-major and column-major layouts, plus a clear comparison of the three storage allocation strategies.
Parameter passing and the heap, made concrete
What actually happens in memory for pass-by-value vs pass-by-reference, and how the heap tracks free and used memory to satisfy new/delete.