3 AnswersNew Answer
•https://www.sololearn.com/discuss/1146851/?ref=app •https://www.sololearn.com/discuss/1869415/?ref=app •https://www.sololearn.com/discuss/239629/?ref=app •https://www.sololearn.com/discuss/94942/?ref=app Stack is a linear data structure whereas Heap is a hierarchical data structure. Stack variables can't be resized whereas Heap variables can be resized. Stack memory is allocated in a contiguous block whereas Heap memory is allocated in any random order. © https://www.guru99.com/stack-vs-heap.html
Stack memory is used for local variables and the function callstack. Recall that stack traces look like this: from main.c 679:23 in main() from main.c 677:5 in foo() from main.c 238:3 in bar() Whenever a function is called, the return address is placed at the top of the stack. When a function returns, the program removes and jumps to the instruction stored at the top of the stack. Heap memory is used for all dynamic memory allocation. The details of dynamic memory allocation are somewhat implementation dependant, but in short, dynamic memory allocation is used to implement arrays and hashes/maps/hashmaps/associative arrays.