Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [DELPHI] Stack Overflow

    Come mai
    var PX2: array [1..1500,1..1500] of TColor;
    da l'eccezione EStackOverflow??

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    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...

  3. #3
    ho risolto in un altro modo ancora, cioè con:

    codice:
    var PX2: array of array of TColor;
    // ...
    SetLength(PX2,1500);
    For I:=0 to 1500-i do
      SetLength(PX2[i],1500);
    Dovrebbe funzionare giusto?? Qual'è secondo te il metodo che "pesa" di meno sulla memoria?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Originariamente inviato da gygabyte017
    ho risolto in un altro modo ancora
    Ok, hai usato un array dinamico. Può andare, in quanto allocato dinamicamente, come suggerisce il nome stesso.

    Originariamente inviato da gygabyte017
    Qual'è secondo te il metodo che "pesa" di meno sulla memoria?
    Direi che per la memoria c'è poco da fare: se devi allocare memoria per quel numero di elementi, quella è la memoria richiesta.

    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...

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.