Su rendimiento varía tanto en tiempo de ejecución y memoria requerida.
Los datos automáticos asignados no persisten en varias llamadas de función, mientras que los datos estáticos persisten durante toda la vida del programa, sean o no necesarios.
En C, la función malloc, perteneciente a la cabecera stdlib.h, se utiliza para asignar un bloque de memoria en el montón.
Esta memoria se libera automáticamente cuando la función de llamada termina.
Si se quiere asignar una gama similar de forma dinámica, se puede utilizar el siguiente código: malloc() devuelve un puntero nulo (NULL) para indicar que no hay memoria disponible, o que se ha producido algún otro error que impidió la asignación de la memoria.
Uno puede usar un "cast" (ver conversión de tipos) de este puntero a un tipo específico: Hay ventajas y desventajas para la realización del cast.