salut
j'ai déclaré dans mon application une variable tableau deux dimentions
tab: array[1..370,1..1000] of WideString;
mais lors de l'éxécution une message d'erreur s'affiche (stack over flow).
es qu'il y a une solution pour cette problème?
merci.
salut
j'ai déclaré dans mon application une variable tableau deux dimentions
tab: array[1..370,1..1000] of WideString;
mais lors de l'éxécution une message d'erreur s'affiche (stack over flow).
es qu'il y a une solution pour cette problème?
merci.
C'est pas plutôt :
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part tab: array[1..370] of array[1..1000] of WideString;
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!
C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)
Salut,
La solution serait de déclarer un tableau dynamique, pour lequel la mémoire est prise sur le tas, plutôt qu'un tableau statique qui est limité par la pile.
Bonjour,
Ou aussi créer un array[1..370] of TstringList.
comment je peux déclarer un tableau dynamique?
Code : Sélectionner tout - Visualiser dans une fenêtre à part tab: array of WideString;
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!
C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)
Salut, j'en ai eu besoin ya pas longtemps et ca : http://pascal.developpez.com/cours/artdynarr/
est pas mal pour comprendre !
a++
Non :Envoyé par Lung
Est correct
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tab: array [1..370, 1..1000] of WideString;
Par contre, c'est vrai que ce serait plus facile avec des TStringList
Pour finir, je dirais que les erreurs de Stack Overflow arrivent la plupart du temps lorsqu'il y a une boucle infinieDonc cela ne vient pas forcément de ce tableau
![]()
Pedro
Aucune réponse aux sollicitations techniques par MP
Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)
Les pages Source C'est bon. Mangez-en!
Le défi Delphi
Règles du forum - FAQ Delphi - Pensez au chtit
Aéroclub Bastia Saint-Exupéry
Je crois que les 2 syntaxe sont correctes.
mais si on fait un rapide calcul,
370 * 1000 * 4 (taille pointeur ) = 148 000 octets systématiquement alloués...
Bon je crois que la pile dépasse 64Ko de nos jours (et encore ?), mais comme dit Pedro, en cas non pas d'appels multiples, mais d'appels récursif, l'allocation est systématique et tombe vite sur un stack Overflow.
donc préférer de l'allocation dynamique avec des TStringList ou TList.
par exemple,
MaListe1: TList;
donc chaque element est un pointeur sur MaListe2
MaListe2 est un TList dont chaque element pointe sur un WideString alloué.
Je passe les moulages et les allocations à effectuer...
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
Partager