Created by VICTOR JESUS PICEN ACOSTA
over 8 years ago
|
||
Módulo de Gestión de la Asignación Dinámica de CTodos los programas definen variables que pueden ser definidas como globales y locales. •Las variables globales y de el programa principal (main) se almacenan en posiciones fijas de la memoria llamada memoria de datos También se pueden declarar variables estáticas locales que también sea lmacenanensegmentosfijosdememoriaoenlamemoriadedatos,sin embargo, también están disponibles en la función que las declaro. En la <stdlib.h> están definidas las siguientes funciones:
void *calloc(size_t nobj, size_t size)calloc obtiene (reserva) espacio en memoria para alojar un vector (una colección) de nobj objetos, cada uno de ellos de tamaño size. Si no hay memoria disponible se devuelve NULL. El espacio reservado se inicializa a bytes de ceros.Obsérvese que calloc devuelve un (void *) y que para asignar la memoria que devuelve a un tipo Tipo_t hay que utilizar un operador de ahormado: (Tipo_T *)
void *malloc(size_t size)malloc funciona de forma similar a calloc salvo que: a) no inicializa el espacio y b) es necesario saber el tamaño exacto de las posiciones de memoria solicitadas.void *realloc(void *p, size_t size)realloc cambia el tamaño del objeto al que apunta p y lo hace de tamaño size. El contenido de la memoria no cambiará en las posiciones ya ocupadas. Si el nuevo tamaño es mayor que el antiguo, no se inicializan a ningún valor las nuevas posiciones. En el caso en que no hubiese suficiente memoria para “realojar” al nuevo puntero, se devuelve NULL y p no varía.El puntero que se pasa como argumento ha de ser NULL o bien un puntero devuelto por malloc(), calloc() o realloc().
void free(void *p)free() libera el espacio de memoria al que apunta p. Si p es NULL no hace nada.Además p tiene que haber sido “alojado” previamente mediante malloc(), calloc() o realloc().
Want to create your own Notes for free with GoConqr? Learn more.