Come mai
var PX2: array [1..1500,1..1500] of TColor;
da l'eccezione EStackOverflow??
Come mai
var PX2: array [1..1500,1..1500] of TColor;
da l'eccezione EStackOverflow??
Probabilmente è dovuto al fatto che, allocando la variabile sullo stack, le sue dimensioni statiche ragguardevoli saturano lo stack stesso generando l'errore in oggetto.
Hai due opportunità: usare un'altra struttura dati, come ad esempio una lista (TList), oppure evitare la creazione di quella variabile sullo stack dichiarandola all'esterno di una routine, oppure ancora aumentando le dimensioni massime dello stack attraverso le opzioni del Linker.
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
ho risolto in un altro modo ancora, cioè con:
Dovrebbe funzionare giusto?? Qual'è secondo te il metodo che "pesa" di meno sulla memoria?codice:var PX2: array of array of TColor; // ... SetLength(PX2,1500); For I:=0 to 1500-i do SetLength(PX2[i],1500);
Ok, hai usato un array dinamico. Può andare, in quanto allocato dinamicamente, come suggerisce il nome stesso.Originariamente inviato da gygabyte017
ho risolto in un altro modo ancora
Direi che per la memoria c'è poco da fare: se devi allocare memoria per quel numero di elementi, quella è la memoria richiesta.Originariamente inviato da gygabyte017
Qual'è secondo te il metodo che "pesa" di meno sulla memoria?
Forse l'uso di un array dinamico è un po' più lento, per via delle necessarie allocazioni da effettuare.
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...