elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Estructuras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Estructuras  (Leído 2,061 veces)
Eli5Nocive

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Estructuras
« en: 28 Diciembre 2023, 07:43 am »

El programa deja de funcionar con la funcion imprimir_mercado, y no entiendo por que sucede esto
Código
Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
typedef struct Mercados_Municipales{
char nombre[20];
char direccion[50];
char telefono[11];
}Mercados;
 
Mercados leer_mercado(void);
void imprimir_mercado(Mercados mercado);
 
int main(){
Mercados mercados[20];
Mercados mercado;
char desicion;
int i, cantidad = 0, numero;
 
printf("\n\t\tMercados Municipales de Ciudad Guayana\n\n");
 
while(cantidad < 20){
 
do{
printf("%d Mercados Municipales. Pasamos a otro? [S/N] ", cantidad);
desicion = getchar(); // Leemos un caracter
while(getchar() == EOF); // Necesario para se coma el \n
}while(desicion != 'S' && desicion != 's' && desicion != 'N' && desicion != 'n');
if(desicion == 'N' || desicion == 'n') break; // Si elige N, se sale
 
mercado = leer_mercado();
mercados[cantidad++] = mercado;
}
 
printf("\nMostrar informacion del Mercado: ");
scanf("%d", numero);
 
imprimir_mercado(mercados[numero]);
 
return 0;
}
 
Mercados leer_mercado(){
Mercados mercado;
 
printf("\nNombre: ");
gets(mercado.nombre);
printf("Direccion: ");
gets(mercado.direccion);
printf("Telefono: ");
gets(mercado.telefono);
printf("\n");
 
return mercado;
}
 
void imprimir_mercado(Mercados mercado){
printf("\n\n\t\t%s", mercado.nombre);
printf("\nDireccion: &s\tTelefono: %s\n", mercado.direccion, mercado.telefono);
}
 



En línea

profinet

Desconectado Desconectado

Mensajes: 30



Ver Perfil
Re: Estructuras
« Respuesta #1 en: 28 Diciembre 2023, 09:52 am »

Varias observaciones:

    1. Evita el uso de gets() debido a que no verifica el tamaño de la entrada, lo que podría resultar en un desbordamiento del búfer.

    2. Has omitido el uso del operador & al utilizar scanf() para la variable número. Debería ser scanf("%d", &numero);

    3. En la función imprimir_mercado(), has utilizado &s en lugar de %s. Esto es incorrecto y debe corregirse a %s.

    4. He optado por utilizar un puntero para la estructura Mercados en la función leer_mercado(). Esta elección es más adecuada cuando se necesita devolver una variable del struct.



EI: codigo removido, no hagas tareas ajenas por favor.


« Última modificación: 28 Diciembre 2023, 10:47 am por Eternal Idol » En línea

Don't shy away from the terminal; embrace it! In the GNU world, everything is a file.
Atika

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Estructuras
« Respuesta #2 en: 1 Enero 2024, 12:18 pm »

    Error en scanf: Cuando se recibe el número para mostrar la información de un mercado en específico, falta el & antes de la variable numero en la función scanf.

    Error de formato en printf: En la función imprimir_mercado, tienes un error en el formato del printf. Estás usando &s en lugar de %s para imprimir la dirección y falta un %s para imprimir el nombre.

    Función gets obsoleta: La función gets es obsoleta y puede ser peligrosa debido a problemas de desbordamiento de búfer. Se recomienda usar fgets en su lugar.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Estructuras.....
Programación C/C++
Rodri 1 2,525 Último mensaje 6 Octubre 2011, 19:46 pm
por satu
Estructuras en C
Programación C/C++
Redisteon 1 1,585 Último mensaje 10 Agosto 2013, 10:39 am
por Eternal Idol
[C] Estructuras
Programación C/C++
yuna88 6 2,343 Último mensaje 16 Marzo 2014, 14:29 pm
por rir3760
Estructuras dentro de Estructuras (Visual Basic 2013)
.NET (C#, VB.NET, ASP)
Tazmania40 0 1,692 Último mensaje 3 Marzo 2017, 21:44 pm
por Tazmania40
Uso de Estructuras dentro de Estructuras en C
Programación C/C++
Ghio97 0 1,496 Último mensaje 27 Agosto 2019, 05:44 am
por Ghio97
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines