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


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


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

Desconectado Desconectado

Mensajes: 73



Ver Perfil
Duda con funcion que devuelve un struct
« en: 15 Julio 2017, 21:36 »

Hola, quiero generar una carta aleatoria, pero mediante una funcion, el problema esta en que el programa no me compila. La funcion generara carta, crea una estructura temp y le asigna palo y numero, y retorna la struc, pero al hacer carta1 = generarcartaaleatoria(); me provoca un error porque al parecer es de tipo int, lo cual no entiendo.
Código
  1. #include <stdio.h>
  2.  
  3. struct carta
  4. {
  5. int numero;
  6. char palo;
  7. };
  8.  
  9. int numero[12];
  10. char palo[4] = {'c', 'o', 'b', 'e'};
  11. typedef struct carta cartau;
  12.  
  13. int main()
  14. {
  15. rellenar(numero,12);
  16. cartau carta1;
  17. carta1 = generarcartaaleatoria();
  18. }
  19.  
  20. cartau generarcartaaleatoria()
  21. {
  22. cartau temp;
  23. temp.numero = numero[rand()%11];
  24. temp.palo = palo[rand()%4];
  25. return temp;
  26. }
  27.  
  28. void rellenar(int *vector,int tamanio){
  29. int i;
  30. for(i = 0; i < tamanio; i++) {
  31.    vector[i] = i+1;
  32. }
  33. return 0;
  34. }
  35.  


En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Duda con funcion que devuelve un struct
« Respuesta #1 en: 15 Julio 2017, 21:43 »

los errores por encima son

-no creaste los prototipos de la función, por lo que main no las conocerá...
-no agregaste stdlib.c que es quien tiene contiene a rand() (y tambien el uso de srand con time para inicializar)
-haces return en rellenar, lo cual da error porque rellenar es de tipo void (es decir tipo sin return)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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