Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C] dangling pointer??

  1. #1

    dangling pointer??

    Ciao a tutti..
    Qualcuno potrebbe spiegarmi bene cosa sono i cosi detti dangling pointer o puntatori penzolanti??

    in quetsa funzione l'avrei generato??
    codice:
    int* G(int X[][100],int dim){
    int tmp;
    int *p;
    int indice=0;
    int min=F(*X,100);
    for(int i=0;i<dim;i++){
    	tmp=F(*(X+i),100);
    	if(tmp>min){
    		 min=tmp;
    		 indice=i;
    		}
    	}
    p=*(X+indice);
    return p;
    }
    Grazie,ciao
    Pausaciccha :sexpulp:

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,306
    I dangling pointers o dangling references sono dei riferimenti pendenti a strutture dati che non esistono più perchè sono state deallocate.

    Esempio: tu crei una struttura dati, e crei 2 puntatori ad essa. Tramite il primo puntatore deallochi la struttura dati, quindi succede che il secondo puntatore punta a qualcosa che non c'è più. Questo è un dangling reference.

    Sinceramente non ti so dire se crei dangling references con il tuo codice, ma non vedendo istruzioni di deallocazione lo escluderei. Ripeto che potrei sbagliarmi su quest'ultima affermazione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie per la risposta.
    Ma allora il mio codice, venendo le variabili,quindi anche il puntatore deallocati alla fine della chiamata,genera un dangling pointer???O no?
    Pausaciccha :sexpulp:

  4. #4
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    33
    il dangling reference è un puntatore che punta a un oggetto che non esiste più
    es:

    {int* p;
    {int a;
    p =&a;
    }
    }

  5. #5
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    33
    credo che il tuo puntatore punti a una variabile automatica che quindi muore quando esci dal blocco (corpo della funzione).qiundi alla fine il tuo puntatore punta a una cosa che non esista più: cmq non sono sicuro di questa risposta.




    ciao mad

  6. #6
    credo che il tuo puntatore punti a una variabile automatica che quindi muore quando esci dal blocco (corpo della funzione).qiundi alla fine il tuo puntatore punta a una cosa che non esista più: cmq non sono sicuro di questa risposta.
    Mi sa anche a me :sexpulp:
    E i fatti confermano...solo che ne volevo essere sicuro!
    Ciao,Pausaciccha :sexpulp:

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.