Memoria Dinámica
Características
- No tenemos que saber cuanto espacio ocupara una variable, por ejemplo una cadena de caracteres no hace falta saber cuantos caracteres ocupará
- Se aprovecha mejor el espacio de la memoria porque solo se usa la que se necesita
- Para poder usar las funciones relacionadas con la memoria dinámica se tiene que incluir la siguiente libreria
#include <stdlib.h>
Para C/C++
Calloc
void *calloc(size_t nobj, size_t size)
Malloc
- Función para reservar la memoria.
- Devuelve la primera dirección de la parte reservada. Esta dirección se guarda en un puntero.
- Si no hay espacio libre la función devuelve NULL
puntero = (tipo_de_variable *) malloc( número de bytes a reservar );
Realloc
- Cambia el tamaño de la memoria reservada
- El contenido de la memoria no cambia de las posiciones ya ocupadas
- Si no hay mas memoria se devuelve NULL pero el puntero no varia
- El puntero que se paasa a realloc ha de ser NULL o devuelto por malloc(), calloc() o realloc()
void *realloc(void *p, size_t size)
Free
- Función que sirve para liberar la memoria asignada
free(puntero);