PDA

Visualizza la versione completa : usare due, o pił volte new sullo stesso oggetto


c_junior
08-02-2010, 12:35
salve, ho una classe:


class MIA_CLASSE{
//codice della classe
}


e nel main ho:


MIA_CLASSE *m;
m=new MIA_CLASSE();

//e sotto da qualche parte
m=new MIA_CLASSE();

se uso due volte l'operatore new sullo stesso oggetto riscrivo l'area di memoria allocata prima oppure ne scrivo un'alltra? inoltre se ne scrivo un'altra come faccio a liberare l'area di memoria allocata prima?

shodan
08-02-2010, 12:39
1) Un'altra.
2) Non puoi. Prima di riallocare il puntatore devi rilasciarlo.

c_junior
08-02-2010, 12:59
hum e come la libero l'area?

delete m;

oregon
08-02-2010, 12:59
Originariamente inviato da c_junior
se uso due volte l'operatore new sullo stesso oggetto riscrivo l'area di memoria allocata prima oppure ne scrivo un'alltra? inoltre se ne scrivo un'altra come faccio a liberare l'area di memoria allocata prima?

Classico memory leak ...

c_junior
08-02-2010, 13:00
ok ragazzi ho capito che non posso e che creo un memory leak ma per evitare prima di richiamare new devo usare delete?

oregon
08-02-2010, 13:02
Certo ...

new ... delete

e poi nuovamente new

ovviamente, se usi lo stesso puntatore ... se ne usi due avrai due oggetti ...

c_junior
08-02-2010, 13:10
ok grazie

Loading