Vimos ya en "Tipos de Memoria de programas" los diversos espacios de "memoria", y que nos referíamos a memoria dinámica, como la capacidad de un programa para alocar (es decir pedir, y reservar) un espacio de memoria, para guardar algo, dinámicamente, es decir en tiempo de ejecución.
Esto quiere decir que mi programa podrá tener lineas de código que digan algo conceptualmente como "dame memoria para guardar un entero", y de repente si se da cuenta que necesita guardar algo más, por ejemplo, el usuario quiere ingresar un producto más, necesitaría pedir "dame incluso más memoria que necesito guardar un Producto".
Existen dos grandes estrategias para que un lenguaje implemente esto:
Por ahora va a parecer algo teórico, pero no se preocupen, para eso vamos a ver ejemplos concretos de ambos esquemas.