Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 24 su 24
  1. #21
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Vi avrei postato il codice, purtroppo però non cel'ho sottomano.
    Domani vi posto tutto.

    Buona serata!

  2. #22
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    11
    Scusa Downloader se uso il tuo post ma mi sembra un buon punto di partenza per fare qualche domanda sul passaggio di un * o **.

    Dunque se ho bisogno di passare, come nel tuo caso, una struct la passo tramite il uo puntatore.

    Quindi per esempio(nel main):

    int man(){

    struct miaStruct * s;
    ....

    funz(s);

    }

    dove funz è:

    void funz(struct miaStruct* str){

    }

    funz elabora nella struttura.
    Ora il mio appunto da fare è questo (correggetemi se sbaglio, grazie!).

    Nel caso in cui devo elaborare con gli elemnti della struct (quindi gli elemnti che accedo con str->el) Va bene passare unicamente il puntatore alla struct alla funzione funz.

    Però nel caso in cui devo agire proprio sulla struct, ovvero sul *s, per esempio con questa funzione(lasciate perdere la possibile utilità è per esempio):

    void creaStruct(struct miaStruct **str){
    ...
    *str=(struct miaStruct*)malloc(sizeof(struct miaStruct));
    ...
    }

    allora in questo casao ho bisogno di passare il ** a str, perchè non vado a modificare solo gli elementi della struct (raggiungibili beuissimo con il solo *s), ma vado a modificare il *s, dunque lo devo passare per riferimento (se invece di passare un **s passassi solo il *s in creaStruct la malloc funzionerebbe, ma restituirebbe un puntatore che quando esco dalla funzione non posso più "recuperare").
    Quello che dico è corretto?

  3. #23
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Ecco il codice:

    codice:
    void spostaElemento(struct lista **l, int mv)
    {
     struct lista *m = *l; 
     
      while(mv-- > 0)
       *m = *m->next;
    }
    
    int main() 
    {
     struct lista *l = creaLista(5); 
     spostaElemento(&l, 2);
     return 0;
    }
    Grazie ancora!

  4. #24
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    17
    per weo:
    ci sono parecchi giri di parole
    bisognerebbe provare a farlo girare per esserne certi

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