Diferencia entre revisiones de «Memoria Dinámica»
Ir a la navegación
Ir a la búsqueda
Sin resumen de edición |
Sin resumen de edición |
||
| Línea 5: | Línea 5: | ||
#include <stdlib.h> | #include <stdlib.h> | ||
= Calloc = | = Para C/C++ = | ||
== Calloc == | |||
void *calloc(size_t nobj, size_t size) | void *calloc(size_t nobj, size_t size) | ||
Malloc | == Malloc == | ||
*Función para reservar la memoria. | *Función para reservar la memoria. | ||
*Devuelve la primera dirección de la parte reservada. Esta dirección se guarda en un puntero. | *Devuelve la primera dirección de la parte reservada. Esta dirección se guarda en un puntero. | ||
| Línea 15: | Línea 16: | ||
puntero = (tipo_de_variable *) malloc( número de bytes a reservar ); | puntero = (tipo_de_variable *) malloc( número de bytes a reservar ); | ||
= Realloc = | == Realloc == | ||
*Cambia el tamaño de la memoria reservada | *Cambia el tamaño de la memoria reservada | ||
*El contenido de la memoria no cambia de las posiciones ya ocupadas | *El contenido de la memoria no cambia de las posiciones ya ocupadas | ||
| Línea 24: | Línea 25: | ||
= | == Free == | ||
*Función que sirve para liberar la memoria asignada | *Función que sirve para liberar la memoria asignada | ||
free(puntero); | free(puntero); | ||
= C++ = | |||
== New == | |||
== Delete == | |||
= Diferencias = | |||
Revisión actual - 09:33 8 mar 2013
Características
[editar]- 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++
[editar]Calloc
[editar]void *calloc(size_t nobj, size_t size)
Malloc
[editar]- 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
[editar]- 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
[editar]- Función que sirve para liberar la memoria asignada
free(puntero);