programacion c

Páginas: 3 (692 palabras) Publicado: 11 de septiembre de 2013
9. Asignación dinámica de memoria y Estructuras dinámicas
La asignación dinámica de memoria es una característica de C. Le permite al usuario crear tipos de datos y estructuras de cualquier tamañode acuerdo a las necesidades que se tengan en el programa.
Se revisarán dos de las aplicaciones más comunes:
Arreglos dinámicos
Estructuras dinámicas de datos.
9.1 Uso de malloc, sizeof y free
Lafunción malloc es empleada comúnmente para intentar ``tomar'' una porción contigua de memoria. Esta definida como:
void *malloc(size_t size);
Lo anterior indica que regresará un apuntador deltipo void *, el cual es el inicio en memoria de la porción reservada de tamaño size. Si no puede reservar esa cantidad de memoria la función regresa un apuntador nulo o NULL
Dado que void * esregresado, C asume que el apuntador puede ser convertido a cualquier tipo. El tipo de argumento size_t esta definido en la cabecera stddef.h y es un tipo entero sin signo.
Por lo tanto:
char *cp;

cp =(char *) malloc(100);
intenta obtener 100 bytes y asignarlos a la dirección de inicio a cp.
Es usual usar la función sizeof() para indicar el número de bytes, por ejemplo:
int *ip;

ip = (int *)malloc(100 * sizeof(int) );
El compilador de C requiere hacer una conversión del tipo. La forma de lograr la coerción (cast) es usando (char *) y (int *), que permite convertir un apuntador void a unapuntador tipo char e int respectivamente. Hacer la conversión al tipo de apuntador correcto asegura que la aritmética con el apuntador funcionará de forma correcta.
Es una buena prácticausar sizeof() aún si se conoce el tamaño actual del dato que se requiere, -- ya que de esta forma el código se hace independiente del dispositivo (portabilidad).
La función sizeof() puede ser usada paraencontrar el tamaño de cualquier tipo de dato, variable o estructura. Simplemente se debe proporcionar uno de los anteriores como argumento a la función.
Por lo tanto:
int i;
struct COORD {float x,y,z};...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • programacion C
  • Programacion c++
  • c# Programacion
  • Programacion En C#
  • Programacion en c
  • Programacion en c
  • Programacion en c++
  • Programacion c ++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS