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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


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

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Duda con struct y funciones (aprendiendo)
« en: 23 Noviembre 2018, 02:47 am »

Hola buenas como andan, les queria comentar que me sale un error al hacer la llamada a la funcion, precisamente en la parte cuando sale los parmetros. Me podrian dar una mano :'(


#include<stdio.h>
#include<stdlib.h>
#include<string.h>



void carga(struct registro datos2 ,int n);

 struct registro
{
    char nombre[100];
   int numpaciente;
    char obraSocial[50];

   
};

int main()
{
   struct registro datos[50];
   int n;
   printf("Ingrese la cantidad de pacientes:  ");
   scanf("%d",&n);
   carga(datos ,n);
   
}


void carga(struct registro datos2,int n )
{
   
   int i;
 for (i=0;i<n;i++)
 {  _flushall();
    printf("ingrese el nombre del paciente");
    gets(datos2.nombre);
    printf("ingrese el numeros del pas:");
    scanf("%d",&datos2.numpaciente);
    printf("ingrese su obra social : ");
    gets(datos2.obraSocial);
    
 }
   return 0;
}



En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda con struct y funciones (aprendiendo)
« Respuesta #1 en: 23 Noviembre 2018, 03:30 am »

Hola que tal , es un poco inexacto lo que haces.

Si te interesa el programa funcional date una vuleta por este tema:

Plantillas programas escolares en C

Los errores de tu codigo acontinuacion:
Código
  1. struct registro {
  2. char nombre[100];
  3. int numpaciente;
  4. char obraSocial[50];
  5. };
  6.  
  7.  
  8. void carga(struct registro datos2 ,int n);

debes de escribir primero el struct, antes de ponerlo como parametro en cualquier prototipo de funcion.

La funcion Carga solo recibie un Registro, no un arreglo de registro.

Aqui lo declaras que solo recibe uno:

Código
  1. void carga(struct registro datos2,int n);

Y aqui le pasas un arreglo de 50 registros:


Código
  1. carga(datos ,n);  

Eso no se puede hacer.

Luego tambien no es preciso

Código
  1. printf("Ingrese la cantidad de pacientes:  ");
  2. scanf("%d",&n);

Ya que si n es mayor que 50 te saldras del limite de arreglos que declaraste.

Hay otros detalles que hay que validar pero si no arreglas esos primeros te vas a revolver.

Si lo manejas como apuntador podrias pasar el parametro directamente:
Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. struct registro {
  6. char nombre[100];
  7. int numpaciente;
  8. char obraSocial[50];
  9. };
  10.  
  11.  
  12. void carga(struct registro *datos,int n);
  13.  
  14. int main() {
  15. struct registro datos[50];
  16. int n;
  17. printf("Ingrese la cantidad de pacientes:  ");
  18. scanf("%d",&n);
  19. if(n < 50)
  20. carga(datos ,n);
  21. }
  22.  
  23. void carga(struct registro *datos,int n ) {
  24. int i;
  25. for (i=0;i<n;i++) {  
  26. _flushall();
  27. printf("ingrese el nombre del paciente");
  28. gets(datos[i].nombre);
  29. printf("ingrese el numeros del pas:");
  30. scanf("%d",&datos[i].numpaciente);
  31. printf("ingrese su obra social : ");
  32. gets(datos[i].obraSocial);
  33. }
  34. return 0;
  35. }
  36.  

Hay mucha cosas inseguras en tu codigo por ejemplo gets puedes meter la cantidad de caracteres que quieras si metes mas de 100 caracteres el código tronar, mas específicamente caes en un buffer overflow.

Revisa el link que te pase, maneja correctamente los limites.

Saludos!


« Última modificación: 23 Noviembre 2018, 03:43 am por AlbertoBSD » En línea

Isiaas1999

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Duda con struct y funciones (aprendiendo)
« Respuesta #2 en: 23 Noviembre 2018, 03:45 am »

ah okay muhas gracias !!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines