This document provides an overview of functions with heap and stack memory in 3 parts. It begins by defining the stack and heap, explaining that the stack uses LIFO data structure for allocation while the heap uses a binary tree. It then discusses memory allocation on the stack versus the heap, noting advantages of each like faster access for stack vs ability to access variables globally with heap. It concludes by summarizing potential problems with each method like stack overflow versus memory fragmentation on the heap.