Tecnologia

Páginas: 2 (388 palabras) Publicado: 21 de febrero de 2013
Carmona Ruiz Cristian Santiago

Los variables y vectores en C ocupan un tamaño prefijado, no pueden variarlo durante la ejecución del programa. 
Por medio de punteros se puede reservar o liberarmemoria dinámicamente, es decir, según se necesite. Para ello existen varias funciones estándares, de la biblioteca <stdlib.h>

La función malloc sirve para solicitar un bloque de memoria deltamaño suministrado como parámetro. Devuelve un puntero a la zona de memoria concedida: 

void* malloc ( unsigned numero_de_bytes ); 

El tamaño se especifica en bytes. Se garantiza que la zonade memoria concedida no está ocupada por ninguna otra variable ni otra zona devuelta por malloc.
Si malloc es incapaz de conceder el bloque (p.ej. no hay memoria suficiente), devuelve un punteronulo. 
Punteros void*
La función malloc devuelve un puntero inespecífico, que no apunta a un tipo de datos determinado. En C, estos punteros sin tipo se declaran como void*
Muchas funciones quedevuelven direcciones de memoria utilizan los punteros void*. Un puntero void* puede convertirse a cualquier otra clase de puntero: 

char* ptr = (char*)malloc(1000);
Operador sizeofEl problema de malloc es conocer cuántos bytes se quieren reservar. Si se quiere reservar una zona para diez enteros, habrá que multiplicar diez por el tamaño de un entero. 
El tamaño en bytes de unelemento de tipo T se obtiene con la expresión 

sizeof ( T)

El tamaño de un char siempre es 1 (uno). 

Función free
Cuando una zona de memoria reservada con malloc ya no se necesita, puedeser liberada mediante la función free.

void free (void* ptr); 

ptr es un puntero de cualquier tipo que apunta a un área de memoria reservada previamente con malloc.
Si ptr apunta a una zona dememoria indebida, los efectos pueden ser desastrosos, igual que si se libera dos veces la misma zona. 

Ejemplo de uso de malloc, free y sizeof

#include <stdlib.h>...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tecnologia
  • Tecnología
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS