Storage is the area (disk) needed to hold the runtime code. When that code is run there are 2 types of memory Storage:
Stack is the part of memory where the code, including used libraries are placed to run. It sets up memory areas for declared variables, pointers and functions. This memory space is absolute. The code will not run without this much space. (Usually indicative of the minimum space.)
Heap is the area your code has to calculate, and hold transient bits of data, such as function variables and far pointers. This memory is elastic. The more you have of this, over the minimum, the better your code will run.
(This is an over simplification of how memory works. There are some really good discussions of memory on the interwebs.)