Do you know that? Do not accept every project you are offered. next

What is the stack?

A "stack trace" is a list of which functions have been called, based on this information. When you start using
a debugger, one of the first things you should learn is how to get a stack trace.

The stack is very inflexible about allocating memory; everything must be deallocated in exactly the reverse
order it was allocated in. For implementing function calls, that is all that's needed. Allocating memory off
the stack is extremely efficient. One of the reasons C compilers generate such good code is their heavy use
of a simple stack.

There used to be a C function that any programmer could use for allocating memory off the stack. The
memory was automatically deallocated when the calling function returned. This was a dangerous function
to call; it's not available anymore.