Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031

    [C]Passare una lista per valore

    Scusate la domanda cretina, ma è praticamente impossibile passare una lista per valore o sbaglio qualcosa io nel ragionamento?
    Il fatto che non stia tutta in un'unica area di memoria ma sia allocata in aree distinte e che sia puntata da un puntatore fa sì che l'unico modo di passaggio sia per riferimento... oppure esiste un modo per passarla ad una funzione che la modifichi senza influenzare la lista originale?

  2. #2
    Non si può passare una lista per valore a meno di non creare una nuova lista riaggiungendoci tutti gli elementi di quella vecchia e poi passarla alla funzione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    Mi sembrava impossibile infatti...
    Conciso e chiaro. Grazie.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... ci potevi arrivare per semplice "logica" ...

    Se passi la copia di qualcosa e questo qualcosa e' una lista, devi costruirne una uguale ...

  5. #5
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    beh, magari esisteva un modo attraverso il quale la funzione creava la copia di una lista... solo che il fatto che fosse allocata in spazi di memoria non consecutivi e gestita tutta attraverso puntatori mi portava a pensare ce fosse proprio impossibile... chiaramente a patto di non farlo io via codice...

    un pò come per i vettori insomma... anche se qua i singoli elementi, a differenza degli elementi di una lista, vengono passati per valore.

  6. #6
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    scusate la mia domanda
    ma è possibile passare un array per valore?

  7. #7
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    direi che essendo il nome stesso dell'array un puntatore al suo primo elemento vale il discorso delle liste... ti devi creare una copia dell'array.
    I singoli elementi vengono invece passati per valore.

  8. #8
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    pecato pensavo che mi fosse sfuggito qualcosa

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.