Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    [C++] controllo puntatori

    e lo so, e lo so...ora con sti puntatori sto proprio rompendo, xo ho un piccolo quesito

    C'è un modo per vedere se un puntatore punta o non punta? e c'è un modo per spuntare un puntatore (cioè togliergli l'indirizzo a cui si riferisce, una sorta di NULL)?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466

    Re: [C++] controllo puntatori

    Originariamente inviato da FinalFantasy
    e lo so, e lo so...ora con sti puntatori sto proprio rompendo, xo ho un piccolo quesito
    Se lo dici tu ...

    C'è un modo per vedere se un puntatore punta o non punta?
    Se un puntatore vale NULL sei sicuro che non punta a nessun dato.

    In caso contrario, quando ha un valore diverso da NULL, "potrebbe" puntare ad un dato ma non puoi essere certo che il puntatore sia valido.

    e c'è un modo per spuntare un puntatore (cioè togliergli l'indirizzo a cui si riferisce, una sorta di NULL)?
    p = NULL;

    ma devi tenere presente che se puntava a una zona di memoria allocata in precedenza, prima di annullare il puntatore, devi chiamare la free per liberare tale zona di memoria ...

  3. #3
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    Re: Re: [C++] controllo puntatori

    Originariamente inviato da oregon
    ma devi tenere presente che se puntava a una zona di memoria allocata in precedenza, prima di annullare il puntatore, devi chiamare la free per liberare tale zona di memoria ...
    fortunatamente devo annullare solo puntatori che sono destinati "a non puntare" all'interno di una struct, ma questa free è equivalente a delete p?

    cioè faccio

    delete p
    p= NULL?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Sì, per il C++ devi usare la delete. La free è per il C.

    Va bene

    delete p;
    p = NULL;

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Giusto un piccolo suggerimento per evitare un antipatico errore che successe a me
    Se usi Visual C++, in particolare in versione debug, non ti aspettare che

    codice:
    char *p;
    Sia uguale a NULL.
    Infatti andando a fare il controllo, questo risulterà diverso da null.
    Quindi:
    Un puntatore non è mai inizializzato automaticamente a null.


    codice:
    char *p = NULL;
    eviterà antipatici errori.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente inviato da XWolverineX
    Giusto un piccolo suggerimento per evitare un antipatico errore che successe a me
    Se usi Visual C++, in particolare in versione debug, non ti aspettare che

    codice:
    char *p;
    Sia uguale a NULL.
    Infatti andando a fare il controllo, questo risulterà diverso da null.
    Quindi:
    Un puntatore non è mai inizializzato automaticamente a null.


    codice:
    char *p = NULL;
    eviterà antipatici errori.
    si daccordo, ma questo per qualunque variabile...e poi io sono fedele al gcc...quello è il vero e unico C plus plus, senza offesa, ovviamente

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da FinalFantasy
    e poi io sono fedele al gcc...quello è il vero e unico C plus plus, senza offesa, ovviamente
    Non vedo l'offesa ... ma non ne vedo neanche il perche' ... de gustibus ...

  8. #8
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente inviato da oregon
    Non vedo l'offesa ... ma non ne vedo neanche il perche' ... de gustibus ...
    la presunzione di essere convinti di usare il miglior compilatore c/c++ gratuito può offendere...

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da FinalFantasy
    la presunzione di essere convinti di usare il miglior compilatore c/c++ gratuito può offendere...
    Ah ... ma non avevi aggiunto "gratuito" ... e quindi non capivo da dove derivasse la tua convinzione che fosse "il migliore" in assoluto ...

    ... adesso sono piu' tranquillo ...

  10. #10
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente inviato da oregon
    Ah ... ma non avevi aggiunto "gratuito" ... e quindi non capivo da dove derivasse la tua convinzione che fosse "il migliore" in assoluto ...

    ... adesso sono piu' tranquillo ...
    bah...io credo ke cmq quelli a pagamaneto (sia borland che ms) non riescano cmq ad eguagliarlo...Vedi, non vorrei peccare molto e andare OT, se faccio un programma in Visual C++, non potrò mai portalo su un altro sistema...invece con gcc, posso portare programmi da win a lin e viceversa. Ovviamente se si usano kiamate di sistema particolari, il porting è difficoltoso, però con il visual c++ il porting non è assolutamente garantito, ed è una cosa importantissima...

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.