Grazie alla fine ho scoperto che aveva bisogno di due asterischi,trattandosi di un vettore di puntatori si aspettava due puntatori in entrata probabilmente....ora il problema è diverso,il programma procede liscio finchè non assegno a uno di quei puntatori un certo elemento,io vi posto quello che sto facendo,trattenente le risate,ma il professore s'è fissato con i maiali XD
codice:
#define N 100
typedef struct{
int giorno;
int mese;
int anno;
}Data;
typedef struct{
char nome[20];
float peso;
Data annonascita;
float popolarita;
}Maialino;
typedef struct{
Maialino pigs[N];
int num_maialini;
}Allevamento;
/*->CONFRONTO INTERI<-*/
int confronta(int a,int b)
{
printf("ciao c");
if(a>b)
{
printf("bau");
return 1;
}
if(a<b)
{
return -1;
}
if(a==b)
{
return 0;
}
}
/*->ORDINA DATE<-*/void ordina_data(int num_maialini,Maialino *ord_data[N],Allevamento &citta)
{ //ATTENZIONE già di per se ogni elemento di quel vettore che mandiamo è un puntatore,inoltre vogliamo mandarglielo per indirizzo
int i,j,result; //servono quindi due asterischi
for(i=0;i<num_maialini-1;i++)
{
for(j=0;j=num_maialini-1;j++)
{
result=confronta(citta.pigs[i].annonascita.anno,citta.pigs[j+1].annonascita.anno);
switch(result){
case 1:
*ord_data[i]=citta.pigs[j+1];
break;
case -1:
printf("ciao e");
*ord_data[i]=citta.pigs[i];
printf("ciao f");
break;
case 0:
result=confronta(citta.pigs[i].annonascita.mese,citta.pigs[j+1].annonascita.mese);//nel caso l'anno di nascita sia uguale passa al mese
break;
switch(result){
case 1:
*ord_data[i]=citta.pigs[j+1];
break;
case -1:
*ord_data[i]=citta.pigs[i];
break;
case 0:
result=confronta(citta.pigs[i].annonascita.giorno,citta.pigs[j+1].annonascita.giorno);
break;
switch(result){
case 1:
*ord_data[i]=citta.pigs[j+1];
break;
case -1:
*ord_data[i]=citta.pigs[i];
break;
case 0:
break;
}
}
}
}
}
}
il problema è nella funzione ordina data tra "ciao e" e "ciao f" a quanto pare,visto che stampa solo "ciao e",viene eseguito è,cioè se premo F9 non dice nulla e va,ma quando inserisco tutti i dati arriva a stampare "ciao e" e viene fuori il messaggio di windows "il programma ha smesso di funzionare"
non riesco a caricarla meglio di così,nell'anteprima mi mostra il messaggio in un certo modo ma quando invio mi cambia tutto e viene uno schifo nel punto degli switch,riuscite a capire?sono 3 switch concatenati