Cosa intendi con "cancellare"? Il metodo Free distrugge l'oggetto, pertanto qualsiasi riferimento a esso non sarà più valido perché questo non esiste più in memoria (ciò si tradurrà quindi in una probabile Access Violation).Originariamente inviato da Whitecrowsrain
Ottengo che il metodo free non solo cancella la variabile "indirizzo" ma anche "ListaInd.indirizzi[i]"!
Il codice mi sembra abbastanza caotico, ad ogni modo è sufficiente sapere che quando si crea una istanza di una classe (oggetto), cioè di cui si dispone è il "riferimento" a quell'oggetto, cioè un "puntatore". Andando a richiamare il metodo Free, si distrugge l'oggetto in questione attraverso il suo riferimento, pertanto qualsiasi altro riferimento presente in variabili, campi, array o altre strutture dati non sarà più "valido" (avrà cioè un puntatore valido - non nil - ma che si riferisce a un oggetto che non esiste più).Originariamente inviato da Whitecrowsrain
Questo mi fa pensare che ad "indirizzo" non venga passato il valore di ListaInd.indirizzi[i], ma l'indirizzo di memoria come se fosse un puntatore.. ma perchè? è normale?
P.S.: suggerisco di usare titoli più significativi per i problemi (tralasciando il fatto che non è affatto un bug ciò che è alla base della programmazione a oggetti).![]()