Pagina 5 di 5 primaprima ... 3 4 5
Visualizzazione dei risultati da 41 a 46 su 46
  1. #41
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    cose sempre piu strane.. i problemi sulle variabili iterator che ho sopra scritto mi spariscono se le uso in un altro file..

    fin'ora le stavo testando sul file list.c che è lo stesso dove c'è l'implementazione..
    ora le sto provando sul file node.c (che include list.h) e qui non danno problemi...

    com'è possibile??

  2. #42
    Originariamente inviato da jacopos81
    cose sempre piu strane.. i problemi sulle variabili iterator che ho sopra scritto mi spariscono se le uso in un altro file..

    fin'ora le stavo testando sul file list.c che è lo stesso dove c'è l'implementazione..
    ora le sto provando sul file node.c (che include list.h) e qui non danno problemi...

    com'è possibile??
    Togliere la free() ha senso solo se interator viene utilizzato per un solo ciclo, ma se nel tuo
    programma lo richiami più volte allora non lo togliere.
    In ogni caso senza vedere il codice completo è difficile capire dov'è il problema.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #43
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    ti posso mandare i file con il codice completo via email? non vorrei metterli in pubblico perche fanno parte del progetto per un esame universitario..

  4. #44
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    sono giunto alla conclusione che l'unica cosa che non va bene in questi iteratori è la funzione next..

    faccio un rapido riassunto sperando che qualcuno mi possa dare uno spunto per la correzione:

    le strutture sono queste:
    codice:
    struct NodoLista {
    	void *value;
    	struct NodoLista *next;
    };
    
    typedef struct NodoLista *list;
    
    
    
    struct nodoIt {
    	list *punt;
    };
    
    typedef struct nodoIt *iterator;
    tramite la funzione get_iterator si assegna a un iteratore una lista

    codice:
    iterator get_iterator(list l) {
    
    	iterator I;
    	I = malloc(sizeof(struct nodoIt));
    	if (!l) return NULL;
    	I->punt = l;
    	return I;
    }
    ora a me serve una funzione che faccia semplicemente scorrere l'iteratore di una posizione avanti. L'ho fatta in qyesto modo:
    codice:
    void *next(iterator i) {
    
    	list t = NULL;
    	t = (list *) i->punt;
                if (t->next == NULL) return NULL;
    	t = t->next;
    	i->punt = t;
    	
    }
    effettivamente la funzione mi fa scorrere l'iteratore avanti pero quando la lista finisce mi va in segmentation default.. come posso fare??

  5. #45
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    help me please!!!

  6. #46
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    sembrerebbe che abbia risolto...sembrerebbe...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.