[TList] Double référencement
Salut à tous
Je me pose cette question:
Je crée une TList qui contient des pointeurs sur des variables. J'en crée une autre qui contient les pointeurs de quelques unes de ces variables.
Si je fais un Clear sur la première TList, est-ce nécessaire de le faire aussi sur l'autre? Parce que normalement, avec clear, les pointeurs ainsi que les variables sur lesquelles ils pointent sont libérées.
Exemple:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
var i:integer;
p:^integer;
List1,List2:TList;
begin
List1:=TList.Create;
List2:=TList.Create;
for i:=0 to 100 do
begin
new(p);
p^:=i;
List1.Add(p); //Ajouter chaque valeur de i
if (i mod 2)=0 then List2.Add(p); // Si i est pair, l'ajouter dans List2
end;
List1.Clear;
List2.Clear;
List1.Free;
List2.Free;
end; |
Dans cet exemple, List1.Clear efface tous les pointeurs et ce qu'ils contienent... Mais si je fais List2.Clear juste après, List2 va resupprimer les objets non?