Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problemi funzione-struct

    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

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non ho errori ... Forse il problema che hai sta da qualche altra parte del codice, magari nel main ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    L'unica volta che accedo a quel campo nel main è questo:

    codice:
    int d=percorsi[g].n;

  4. #4
    e poi per aggiungerli 1 che gli ritorna la funzione che ho postato sopra

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ma hai errori di compilazione? Esecuzione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    in compilazione nulla, neanche togliendo il commento... in esecuzione invece vedo che mi mette un valore che non dovrebbe esserci nel campo n del percorso su alcuni percorsi non su tutti(questo commentando quell'inizializzazione a 0). Con l'inizializzazione a 0 dopo aver creato il percorso mi funziona per le prime istruzioni poi fa errori e finisce con aborted (core dump)

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Quasi sicuramente il problema è nel resto dell'applicazione.

    Mostra il main o tutto il codice che è possibile compilare e provare per ottenere le tue stesse condizioni d'errore. Con quello che hai mostrato non si può determinare il problema.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Però non riesco a spiegarmi il motivo per cui il programma non dia nessun errore con stringhe mentre cambiando tutte le stringhe e le relative funzioni sostituendole con long il programma non funziona più

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non posso fare altro che ripetere il mio ultimo post ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.