Memory management
if you are using c/c++, arguments to functions, local varaibles and return values use the stack.
A stack frame is created to keep track of it all during the function call.
The heap is a heap of available memory used when the program dynamically allocates memory with a call such as 'malloc' in C or 'new' in c++.
Memory management is the fact that you have to free the memory when you have finished with it with 'free' in C or 'delete' in C++.
Otherwise you run out of memory. Forgetting to free allocated memory is normally called a memory leak and usualy results in a program crash.