>>32777when function call ends, stack frame "clears" automatically, we go back to previous %rbp. The data is still there, but it will be overwritten by other stack frames.
Garbage collection refers to automatically deallocating allocated memory on the heap. In C, there is no garbage collection, instead you have to call malloc() and then free() to free the memory. If you don't call free(), there may be a situation where your program repeatedly calls malloc(), causing it to allocate memory more and more, never disposing of it, swiftly devouring your RAM. This is called a memory leak. In languages like Java the dynamically allocated memory will be disposed automatically by a garbage collector. In V language there is memory deallocation at compilation time, or something like that, I think it automatically injects free() where is needed, o algo.