Zusammenfassung der Ressource
Reserva dinámica de memoria para
los miembros de una estructura con la
biblioteca alloc.h
- Objetivo
- En esta práctica el alumno aprenderá el uso de memoria dinámica con la
librería alloc.h
- así como la utilización de algunos de sus métodos.
- Memoria dinámica
- Es cuando se reserva memoria en tiempo de ejecución.
- Su principal diferencia frente a la estática es que su tamaño puede variar durante
la ejecución del programa.
- El uso de memoria dinámica es necesario cuando no se conoce de antemano el número de datos o
elementos a tratar.
- Biblioteca
alloc.h
- El fichero de cabecera alloc.h proporciona funciones relativas a la asignación de
memoria dinámica.
- Función malloc
- La función malloc() es la forma más
habitual de obtener bloques de
memoria dinámica.
- La función genera o asigna un bloque de memoria igual
al número de bytes pasados como argumento.
- void*= malloc(tam) ;
- Donde:
- void* : es el apuntador que
almacenará la referencia al
bloque de memoria generado.
- tam : es el tamaño en bytes
del bloque de memoria que se
va a solicitar.
- sizeof(tipo_de_dato) .
- Es otra función importante utilizada para
reservar memoria dinámica
- Esta función permite reservar el número
de bytes especificados en el argumento
tipo de dato
- int * ptr; ptr=(int*) malloc(10*sizeof(int)) ;
- En caso de no haber memoria suficiente malloc() devuelve el valor
NULL
- Por lo que siempre es conveniente preguntar si se asignó el bloque de memoria después esta
operación.
- Uso de la función free
- Cuando se termina de utilizar un bloque de memoria reservado
con malloc() , se debe liberar el espacio de memoria utilizado
- void free (void * ptr) ;
- Dónde: *ptr es el apuntador que hace referencia al bloque de memoria asignado. Si ptr
es NULL , entonces free no hace nada.