Duda con funcion que devuelve un struct

Iniciado por Naimaderis, 15 Julio 2017, 21:36 PM

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

Naimaderis

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.

#include <stdio.h>

struct carta
{
int numero;
char palo;
};

int numero[12];
char palo[4] = {'c', 'o', 'b', 'e'};
typedef struct carta cartau;

int main()
{
rellenar(numero,12);
cartau carta1;
carta1 = generarcartaaleatoria();
}

cartau generarcartaaleatoria()
{
cartau temp;
temp.numero = numero[rand()%11];
temp.palo = palo[rand()%4];
return temp;
}

void rellenar(int *vector,int tamanio){
int i;
for(i = 0; i < tamanio; i++) {
   vector[i] = i+1;
}
return 0;
}

engel lex

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)
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.