Buongiorno ho problemi con una funzione che crea una struct definita da me:
codice:
int addpercorso(percorso **ps, long s, int n){
printf("%ld id %d numero \n",s,n);
n++;
(*ps)=realloc((*ps),n*sizeof(percorso));
(*ps)[n-1].id=s;
//(*ps)[n-1].n=0;
printf("%ld id %d indice \n", (*ps)[n-1].id, (*ps)[n-1].n);
return 1;
}
Questa è la struct:
codice:
typedef struct percorso{
long id;
int n;
nodo *nodi;
} percorso;
La riga che è commentata con il doppio / non funziona, o meglio il programma parte ma poi dopo qualche istruzione eseguita correttamente dà errore. Questa istruzione mi è necessaria farla perchè quando vado ad aggiungere un "percorso" al mio array con questa funzione, che è passato in input con il puntatore **ps, il programma prende da non si sà dove un numero e lo assegna al campo n quindi volevo inizializzarlo a 0.
Premetto che questa funzione funzionava correttamente quando nello struct al posto del campo "long id" c'era un campo "char id[20]". Non riesco a capire il motivo per cui ora mi dia questo errore.
Grazie a tutti quelli che risponderanno