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 : 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
 
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?