La memoria dinámica permite solicitar memoria en tiempo de ejecución usando funciones como malloc() y free(). malloc() devuelve un puntero a la memoria solicitada, mientras que free() devuelve la memoria alocada. Es necesario hacer un casting del puntero devuelto por malloc() al tipo de datos adecuado.