Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di kk.87
    Registrato dal
    May 2008
    Messaggi
    45

    [C++] Passaggio lista in function

    Qualcuno sa dirmi come bisogna passare le liste in una function (procedure o funzioni)? Quando si passano per riferimento (indirizzo) o per copia? risp in molti

  2. #2
    Quale lista ?
    Comunque lo fai, come lo faresti con tutti gli altri tipi di variabile ...

  3. #3
    se per lista intendi un array nativo, sappi che in realtà è soltanto un puntatore, quindi tu scrivi:

    int arrayDiInt[] = {2,3,4}

    void funzione(int* array) {
    // facciamo qualcosa su questo array, es.
    array[0] = 3;
    }

    printf("%d ; %d ; %d",arrayDiInt[0],arrayDiInt[1],arrayDiInt[2]); // stampa "2 ; 3 ; 4"

    funzione(arrayDiInt);

    printf("%d ; %d ; %d",arrayDiInt[0],arrayDiInt[1],arrayDiInt[2]); // stampa "3 ; 3 ; 4"

    se invece intendi una lista STL (standard template language), ti conviene passarla via reference (non mi dilungo a spiegarti, cerca la documentazione c++)
    Armageddon - Chief Developer

    Stiamo cercando collaboratori!

  4. #4
    Utente di HTML.it L'avatar di kk.87
    Registrato dal
    May 2008
    Messaggi
    45
    non so voi come le chiamate, ma la lista è una collezione di oggetti in cui ogni nodo è formato da un oggetto e da un puntatore all'oggetto successivo:

    struct Rnodo {
    int info;
    Rnodo *next;
    };
    typedef Rnodo* Pnodo;

    in questo modo possiamo collegare più oggetti attraverso il puntatore L->next; e cosi legando i vari nodi creiamo una lista

  5. #5
    Si lo so cosa sia una lista. Che c'è che non va ?

  6. #6
    Utente di HTML.it L'avatar di kk.87
    Registrato dal
    May 2008
    Messaggi
    45
    se puoi un po spiegarmi quando passarle per riferimento e quando per copia, nel passaggio ad una function

  7. #7
    Riferimento passi l'indirizzo della variabile.
    Copia, lo dice il nome, passi una copia del contenuto della variabile.
    codice:
    void riferimento(RNodo *nodo);
    void riferimento_reference(RNodo& nodo);
    void copia(Rnodo nodo);
    Passi per riferimento quando:
    1) Devi velocizzare il codice.
    2) Devi modificare il contenuto della variabile.

    Passi per copia quando ti serve solo leggere il valore della variabile


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.