Here's a question for you. Do you understand what the Stack and Heap are, and how programs use them to execute code? That's really an essential part of fully understanding pointers and memory management.
My understanding is:
The stack, is a division of memory which is quite small in relation to the heap. Variables are pushed on to the heap when they are needed and removed when they go out of scope.(ie when a function ends)
The heap on the other hand is a large container of memory that is managed by the programmer. the Heap holds (or should) variables that have a long life cycle or quite large in size.
In my initial post, I did kinda ask in a roundabout way if you could crash a program by filling up the stack. and if you should strategically offload to the heap