Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Pardon, mi sono perso un pezzo della condizione; l'if doveva essere:
    codice:
                if(secPtr==NULL || (firstPtr!=NULL && firstPtr->i < secPtr->i))
    Ovvero, entra nel blocco se:
    - la seconda lista è finita;
    - nessuna delle liste è finita (firstPtr!=NULL così come secPtr, altrimenti la parte dopo || non viene valutata), e l'elemento della prima lista precede il secondo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  2. #12
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99
    ok, ora funziona, grazie mille
    cercherò di capire meglio le varie condizioni

  3. #13
    Vedila così: ad ogni iterazione possono aversi i seguenti casi:
    - entrambe le liste sono finite => esco dal ciclo;
    - solo la prima lista è finita => necessariamente prendo l'elemento dalla seconda lista;
    - solo la seconda lista è finita => necessariamente prendo l'elemento dalla prima lista;
    - ci sono ancora elementi nelle due liste => prendo l'elemento dalla prima o dalla seconda in base a quello che ha valore minore

    Quel codice non fa altro che implementare queste condizioni, solo che sono scritte in maniera più compatta (e in maniera da evitare il confronto se una delle due liste è terminata, nel qual caso si avrebbe un segmentation fault).
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #14
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99
    grazie ancora per la dettagliata spiegazione

  5. #15
    Amaro C++, il gusto pieno dell'undefined behavior.

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.