Problema con estructuras y apuntadores

Iniciado por angelihsahn, 30 Agosto 2013, 03:14 AM

0 Miembros y 1 Visitante están viendo este tema.

angelihsahn

Mi problema es el siguiente:

Mi programa esta hecho con 2 estructuras anidadas :1 Llamada Medicamentos con un nombre y una dosis y otra llamada farmacia que tiene como atributos nombre, direccion y un dato de tipo medicamentos. Accedo a sus atributos con apuntadores. tiene un Menu en el que:

1 Se crea una Farmacia con su nombre direccion y un numero de medicamentos (reservo memoria para n medicamentos y para nombre y direccion)

2 Se imprime los datos de la Farmacia

3 Permite cambiar el nombre de un medicamento

Pero como hago para que, si el usuario entra en la opción de imprimir o la de cambiar el nombre de un medicamento antes de Crear una farmacia, el programa le diga que NO hay una farmacia creada (evitar desbordamiento de memoria)???

rir3760

Para darte una solución (una que funcione) debes primero indicar el lenguaje de programación que utilizas y publicar el código fuente del programa.

Cita de: angelihsahn en 30 Agosto 2013, 03:14 AM
1 Se crea una Farmacia con su nombre direccion y un numero de medicamentos (reservo memoria para n medicamentos y para ]nombre y direccion)

...


Pero como hago para que, si el usuario entra en la opción de imprimir o la de cambiar el nombre de un medicamento antes de Crear una farmacia, el programa le diga que NO hay una farmacia creada (evitar desbordamiento de memoria)?
Lo usual al implementar las listas es tener un contador para el numero de farmacias y, para cada una, del inventario. Eso puede ser manual en el caso de utilizar arrays o reserva dinámica de memoria o automático en el caso de un contenedor en C++ (por ejemplo un vector).

En un caso así basta con verificar si el contador para el numero de farmacias es cero.

Como ya te comente mejor publica el código fuente del programa.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

lanun

Supongo que lo quieres que haga tu programa es poder almacenar muchas farmacias,cada una con sus atributos. Lo que yo haría sería crear esta lista de farmacias como una lista enlazada de farmacias (con punteros), y a la hora de inicializar simplemente tendrías que crear un nodo que sería el "principio de la lista" apuntando a "nada" (NULL en C++), de esa forma, cuando vayas a mostrar por pantalla la farmacia, comprobarías si ese puntero está a NULL o apunta a un "objeto farmacia" y harías una cosa u otra. Aunque también puedes implementarlo como dice rir3760 y utilizar contadores o vectores.
Espero haberte ayudado.

Saludos.