¡GoConqr estrena diseño! Cuéntanos qué te parece.

Apuntes

Memoria dinamica

JUAN CHAvez Español 1 página

Contenido del apunte (1)

Página 1

Introducción

•En muchas ocasiones no es posible conocer de antemano la cantidad

de variables necesarias para un programa computacional.

•Existen aplicaciones que requieren de enormes cantidades de

arreglos o datos por momentos breves en el funcionamiento del mismo, por lo que

no es viable declarar de antemano a estas como variables, globales o locales de

una función. Lo anterior implica emplear funciones de ANSIC que permiten reservar

memoria de manera dinámica y ampliarla, reducirla o destruirla en tiempo de ejecución.

•El manejo de memoria dinámica es la base del poder del lenguaje

C y le da la capacidad de crear programas complejos que emplean grandes cantidades

de memoria y los maneja de manera eficiente.

Todos los programas definen variables

que pueden ser definidas como globales y locales.

Asignación dinámica de memoria

Hasta el momento sólo se ha visto cómo el lenguaje C define y utiliza los punteros para acceder a las posiciones de memoria asignadas a un programa.

Sin embargo, no se ha tratado cómo “conseguir” nuevas posiciones de memoria (ateniéndose al lenguaje de la parte algorítmica: cómo funciona el

Módulo de Gestión de la Asignación Dinámica de C).

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 *)

Ejemplo:

char * c;

c = (char *) calloc (40, sizeof(char));

Información

Descripción
Es un apunte de memoria dinámica
Creado por
JUAN CHAvez
Visitas
16
Etiquetas
h1h2h3
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?