Buongiorno ho problemi con una funzione che crea una struct definita da me:
Questa è la struct: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; }
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.codice:typedef struct percorso{ long id; int n; nodo *nodi; } percorso;
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

Rispondi quotando