Utilización de memoria y Recursividad en C

Visitas: 428  
Tiempo total: 4 días con 3:18:50 hrs  

Actualmente y con la utilización de lenguajes como Java o C# olvidamos (o no somos consientes) de la asignación de memoria a las variables creadas. Cuando se programa en C surge el problema de que a las variables que se crean se les asigna solo una posición de memoria, sin importar si las funciones que las contienen utilizan recursividad.

Este problema se puede ver cuando se utilizan arboles de análisis sintáctico, comúnmente las variables que se manejan están en un nodo que se declara varias veces. Este es el motivo de esta publicación, hace varios días atrás un compañero de estudio me informo de un error que tenía en sus archivos CUP y LEX, no podía mostrar simples sumas a pesar de que todo estaba bien en su código.

Este problema se soluciona con la función Malloc:

char *buf;
buf = (char *) malloc (sizeof(char));

Malloc asigna un espacio de memoria devolviendo el puntero que utilizara la variable, con esto en una función recursiva cada nueva llamada utilizara la misma variable pero con diferentes posiciones de memoria. Este tema forma partes de los paradigmas de programación que tenía cuando programe el gestor de archivos FAT/EXT3.


Para recibir boletines de información, por favor escribe tu correo electrónico:

Por favor ingrese un correo electrónico valido.
Registrado correctamente!