Professional Documents
Culture Documents
2
Estructura Dinámica de datos con funciones
Conociendo ya la manera de declarar, inicializar, capturar y presentar una estructura dinámica de datos
(registro), se verá a continuación cómo se llevan a cabo las dos últimas tareas (captura y presentación) mediante
funciones.
Igualmente, el manejo de funciones para una estructura dinámica requiere de las características de prototipado,
declaración, desarrollo o cuerpo y por último, la presentación.
La funciones se prototipan antes de la declaración de la función principal (main) y como manejan apuntadores de
tipo estructura, no retornan ningún resultado cuando son invocadas; por lo cual estas se definen de tipo “void”.
La función “capturar_registro” posee tres parámetros a saber:
El primer parámetro es un apuntador de tipo estructura llamado “ptrUsuario”; su nombre es “User1” y se le
coloca como prefijo el símbolo asterisco (*) para denotar que es un apuntador. Este parámetro contendrá la
dirección de memoria de la estructura creada en tiempo de ejecución, para asignarle posteriormente ya
dentro de la función, los datos a los miembros de dicha estructura dinámica.
El segundo parámetro es una variable de tipo de dato entero llamada “dato_id1”, la cual va a almacenar
temporalmente el dato de la identificación del empleado (ingresado por el usuario final desde el teclado),
para posteriormente ya dentro de la función, asignar su contenido al primer miembro de la estructura
dinámica.
El tercer y último parámetro es una variable de tipo de dato real cuyo nombre es “dato_salario1”, la cual va a
almacenar temporalmente el dato del salario del empleado (ingresado por el usuario final desde el teclado),
para posteriormente ya dentro de la función, asignar su contenido al segundo miembro de la estructura
dinámica
La función “presentar_registro” posee solamente un parámetro llamado “User2” de tipo estructura “ptrUsuario”.
Dado que no se trabajará la estructura para acceder a su contenido sino para leerlo unicamente, no es necesario
crear un apuntador para dicha labor de presentación; por esto el nombre del parámetro carece del símbolo “*”
como prefijo.
La función de captura de datos se declara posterior a la función principal (main), la cual coincide con el
prototipado de la misma con la salvedad de cambiar el símbolo “ ; ” de terminación de la instrucción por un
juego de llaves “ {} ”, para ubicar posteriormente dentro de ellas el desarrollo de la función en cuestión.
3. Desarrollo o cuerpo de la función de captura de datos para una estructura dinámica
El desarrollo de la función de captura de datos requiere de declarar un apuntador de alcance local (se conoce
también como apuntador temporal)de tipo estructura, ello con el fin de manipular los datos que el usuario
ingresó desde teclado sin propensión a errores. Dicha declaración del apuntador local corresponde a la
instrucción: “ptrUsuario ptrNuevo;”.
A continuación se asignan los datos al apuntador temporal desde los parámetros “dato_id1” y “dato_salario1” en
sus correspondientes miembros (id y salario), mediante el uso del operador apuntador (->). Dicha asignación de
datos corresponde a las instrucciones “ptrNuevo->id = dato_id1;” y “->salario = dato_salario1;”.
Por último, teniendo los datos ya asignados en los miembros “id” y “salario” en el apuntador de alcance local
“ptrNuevo”, se asigna entonces dicho apuntador de tipo estructura al parámetro “*User1”, también de tipo
estructura, cuyo contenido es la dirección de memoria creada en tiempo de ejecución y la cual fue transferida en
el momento de la invocación de la función de captura (la cual se detalla en el siguiente inciso). Dicha asignación
del apuntador corresponde a la instrucción “*User1 = ptrNuevo;”.
La función de presentación de datos se declara posterior a la función de captura, la cual coincide con el
prototipado de la misma con la salvedad de cambiar el símbolo “ ; ” de terminación de la instrucción por un
juego de llaves “ {} ”, para ubicar posteriormente dentro de ellas el desarrollo de la función en cuestión.
La invocación de la función “capturar_registro” posee un sólo argumento, el cual atañe a la estructura dinámica
creada en tiempo de ejecución y cuyo nombre es “Cliente”. Su transferencia requiere únicamente del nombre, ya
que se está trabajando directamente con la memoria asignada de manera dinámica.
…………………………………..
El código fuente completo de una aplicación que implementa una estructura dinámica de datos desde su
prototipado, declaración, inicialización, captura y presentación mediante funciones, se desarrolla a continuación:
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("\n\n");
system("PAUSE");
return 0;
Con el fin de apropiarse del concepto descrito, se recomienda construir línea por línea la aplicación anterior y
así, poder trabajar posteriormente la gestión de diversas estructuras dinámicas de datos en conjunto, cuyo
nombre es “Listas” y la cual se detallará en la siguiente guía.