Bonjour j'ai vu un exercice sur les pointeurs que je ne comprends pas trop d'abord le voici :
Code ADA : 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
26
27
28
29
30
31 with Text_Io; use Text_Io; with Ada.Integer_Text_Io; use Ada.Integer_Text_Io; procedure Tab_Ptr_2 is type Ptr is access Integer; type T_Tab is array(1..3) of Ptr; T1: T_Tab; T2: T_Tab; P: Ptr; begin for I in T1'Range loop T1(I):=new Integer'(0); end loop; T1(3).all:=5; P:= new Integer'(0); for I in T2'Range loop T2(I):= P; end loop; T2(3).all:=5; -- moment cle Put("T1(1).all vaut "); Put(T1(1).all); New_Line; Put("T2(1).all vaut "); Put (T2 (1).all); new_line; put("p.all = "); put(p.all,1); New_Line; skip_line; end Tab_Ptr_2;
Ce que je ne comprend pas ce trouve ici :
donc là j'ai T1(1)=0; T1(2)=0; T1(3)=5;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for I in T1'Range loop T1(I):=new Integer'(0); end loop; T1(3).all:=5;
et ici :
j'ai chaque cellule de T2 qui est pointé par P mais quelle est la valeur de ces cellules ? perso je pense que c'est T2(1)=0; T2(2)=0; T2(3)=5; mais en regardant la correction je vois que c'est 5 la valeur donc ma question comment ca ce fait pouvez-vous m'expliquer la nuance entre les 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 P:= new Integer'(0); for I in T2'Range loop T2(I):= P; end loop; T2(3).all:=5;
Partager