Bonjour à tous,

Je reviens vers vous car j'ai de nouveau un souci pour comprendre le fonctionnement et le comportement du langage.

J'essaie juste de structurer un dictionnaire de HASH. Cela faisait des erreurs en mémoire.

Alors, j'ai pris un exemple tout bête... Un dictionnaire de chaine de caractère...


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{$mode objfpc}{$H+}
 
uses sysutils,fgl ; 
 
TYPE
 
	HASHMAP_DeTest = specialize TFPGMap<string,String>;
 
procedure TestMAP;  
 
Var DICT_Test : HASHMAP_DeTest;
 
begin  
 
	DICT_Test := DICT_Test.Create;
	//DICT_Test.Sorted = True; // Impossible de faire ce genre de chose
  //DICT_Test.add('Clef','Valeur');
  DICT_Test['Test'] := 'coucou';
 
 
end;  
 
begin  
  TestMAP;  
end.
Sous FP en compilant, impossible de trouver "crt" ... (je l'ai enlevé depuis)
A la compilation avec FPC pas de problème ...

Mais à l'execution ...

31 lines compiled, 0.4 sec
1 warning(s) issued
An unhandled exception occurred at $000000000044DE11:
EAccessViolation: Access violation
$000000000044DE11
$0000000000400259
$0000000000400A1E

J'ai pas dû faire comme il faut certainement, mais j'ai du mal a voir.

Merci d'avance pour l'aide que vous pourrez m'apporter sur le sujet.

Cordialement
MAD