Bonsoir,

il y a quelques semaines, mon prof mentionnait la création d'un allocateur spécialisé pour les chaînes de caractères afin d'éviter le dépassement de tas lors d'un tri par hachage.
En partant sur cette base, il me semble que l'on devait mettre les chaînes dans un enregistrement afin d'allouer au gré de nos besoins.

De ce fait, si j'ai une liste sur le type String, ses cellules ne contiendront plus directement 256 octets mais seulement l'adresse menant à la chaîne stockée dans le record.

Ce devrait ressembler à quelque chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
  Allocateur = array [1..32000] of ^String;
  Alloc =
    record
       t : Allocateur;
       k : integer;
    end;
 
var maVar : Alloc.
Besoin de stocker une chaîne ? Boum !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
New(maVar.t[i]);
maVar.t[i] := chaine;
Quelqu'un peut-il affirmer ou infirmer ce que j'avance et me donner davantage d'informations svp puisque j'aimerais le coder ?

Merci d'avance pour vos réponses.

Cordialement,

Aragog.