Memoria dinamica

Solo disponible en BuenasTareas
  • Páginas : 2 (340 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de enero de 2011
Leer documento completo
Vista previa del texto
Programación en C/Manejo dinámico de
memoria
Esta sección no está lista si tienes algún conocimiento sobre este tema por favor, regístrate y contribuye con nuestro
libro.
Breve introducción.¿Qué es memoria dinámica?
Es el espacio de memoria que reservamos a partir de la función "malloc". Su tamaño puede variar durante la
ejecución del programa y puede ser liberado mediante la función"free".
¿Qué es memoria estática?
Es el espacio de memoria que se crea al declarar variables, arrays o matrices de forma estática (ej. int x, char
c[MAX], etc) y cuyo tamaño no podemos modificar durantela ejecución del programa ni liberar el espacio que
ocupa.
¿Diferencias, ventajas, desventajas y usos?
La diferencia principal es que la memoria solicitada por malloc(), esta alojada en la memoriaHEAP y la memoria
estática en el STACK. La memoria HEAP es mucho mayor en cuanto a tamaño que la STACK (puede ir desde un
1gb en el HEAP hasta 32mb en el STACK, por citar un ejemplo de un ordenarcomún de hoy en día.). Por lo tanto se
pueden ejecutar programas mas grandes, y a su vez mas rápidos.
El lenguaje c y la memoria dinámica
¿Malloc ?
¿Realloc ?
¿Que es un buffer?
¿Cuáles son lasbuenas prácticas?
La memoria dinámica en C es creada a travás de funciones definidas en la librería estándar de C, estas funciones son
malloc, calloc, realloc y free.
void *malloc(size_t size);
//Esta función sirve para asignar memoria de forma dinámica. Asigna tantos bytes como
// se indica el parámetro size. funciiona de la forma siguiente:
// int *i;
// i = (int *)malloc(sizeof(int));
//El operador (int *) sirve para hacer la conversión de puntero genérico a puntero entero,
// ya que la funcion retorna un puntero void
// Si la asignación no se ha podido realizar, devuelve el valornulo.
void *calloc(size_t nmemb, size_t size);
// Esta función funciona de modo similar a malloc, pero está hecha para asignar espacio a
// matrices, nmemb indica el número de elementos que...
tracking img