



Asignación Dinámica de Memoria:
Para Asignar memoria dinámica en C se precisa de las librerías <stdlib.h> y <malloc.h>. Luego utilizamos la función malloc() para asignar un determinado tamaño de memoria "del montón" y Free()
para liberar esta memoria cuando ya no se utiliza.
Veamos como se asigna la memoria y como se libera:
|
int *bloque; bloque = malloc(200); /*Se reserva 200bytes para 100 enteros */ bloque = (int*) malloc(100 * sizeof(int)); /* forma recomendada */ free(bloque); /* para liberar la memoria utilizada */
|
Ahora realizaremos un ejemplo:
|
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <malloc.h>
main() { char *cadena; int N;
puts ("EJEMPLO DE ASIGNACION DINAMICA DE MEMORIA"); printf("Longitud de cadena: "); scanf ("%d",&N); getchar(); /*Elimina el intro de la entrada*/
cadena = (char*)malloc(N+1); /*+1 para incluir el nulo final*/ if(!cadena){ puts("\nMemoria Insuficiente!"); exit(1);} else printf("\nDireccion asignada: %p",cadena);
printf("\nTeclea %d caracteres: ",N); gets(cadena); printf("\nHas tecleado: %s",cadena); getch(); free(cadena); }
|
|