delphi : augmenter la capacité du compilateur

delphi : augmenter la capacité du compilateur - Delphi/Pascal - Programmation

Marsh Posté le 13-09-2004 à 15:27:46    

bonjour,
 
j'essaye de remplir un tableau ayant un million de cases. Mais delphi me renvoie un message d'erreur :'débordement de pile' tant que je ne réduis pas la taille de mon tableau a 30000 cases.
 
Comment faire ? Peut on augmenter la capacité du compilateur ?

Reply

Marsh Posté le 13-09-2004 à 15:27:46   

Reply

Marsh Posté le 13-09-2004 à 15:59:00    

C'est pas un problème du compilateur là, c'est le fonctionnement du programme, et t'auras la même blague dans d'autres langages avec des variables qui sont déclarées sur la pile.
Solutions :
- mettre ta variable en global, dans la section "var" d'une unit plutôt que d'une fonction. La variable sera allouée dans la mémoire plutôt que sur la pile.
- gérer ça plus proprement (il faut voir quel est le but de ce tableau...)


Message édité par antp le 13-09-2004 à 15:59:21

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-09-2004 à 16:05:54    

Faut faire un tableau de 10 pointeurs qui pointent sur 10 pointeurs qui pointent sur 10 pointeurs qui pointent sur... sur 10 cases et après tu fais une fonction qui plante quand tu cherches une case. Tu verras que t'auras plus de problème de pile.
 
Comment remplacer un bug par un autre par Arjuna :D

Reply

Marsh Posté le 13-09-2004 à 16:14:13    

déclare ton tableau en tant que tableau dynamique, et utilise SetLength pour fixer sa taille par exemple:
 


...
var Plop:array of Integer;
begin
  SetLength(Plop,1000000);
  ...
end;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed