Salve.
Se inizializzo un array del tipo:
String[] ciao = new String[100];
poi con un ciclo for ci inserisco 10 Stringe
e dichiaro
String[11] = null;
Ho liberato le risorse?
Oppure ho fatto un macello e le risorse (100 locazioni) rimangono allocate?
Salve.
Se inizializzo un array del tipo:
String[] ciao = new String[100];
poi con un ciclo for ci inserisco 10 Stringe
e dichiaro
String[11] = null;
Ho liberato le risorse?
Oppure ho fatto un macello e le risorse (100 locazioni) rimangono allocate?
Presumo che tu non debba fare nulla per liberare memoria: ci pensa il Garbage Collector quando tutti i riferimenti all'oggetto array in quanto tale cadono "out of scope" e non vengono più utilizzati.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
grazie...![]()
Nel tuo caso ti resta l'array mezzo vuoto...se usi solo 10 delle 100 locazioni le altre 90 restano allocate e pronte per l'uso essendo parte dello stesso array...
Se devi fare una cosa del genere ci sono tipi di strutture più efficaci tipo il vector!
Ciao.![]()
Si, grazie, infatti alla fine ho i Vector...
Mea culpa perchè non conoscevo questa utilissima classe!![]()
grazie mille![]()
Aggiungo una cosa: se tu dichiari solamente l'array
non allochi proprio niente, quindi l'istruzionecodice:String [] mioArray = new String[100];
è superflua in quanto è già nullo il dodicesimo (codice:mioArray[11] = null;) elemento (con il for, hai detto, inizializzi solo i primi 10 elementi).
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