« Structures de données/Pointeurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 97 :
delete(p2)
Fin
 
== Les pointeurs génériques ==
 
Un pointeur générique est un type de pointeur particulier puisqu'il ne donne pas d'information sur ce qu'il pointe. C'est simplement une adresse vers une zone mémoire.
 
=== Spécification ===
 
Il suffit de déclarer un pointeur comme suit
 
Lexique
identifiant_du_pointeur : pointeur
 
=== Utilisation ===
 
Les pointeurs typés sont également des adresses mémoires donc on peut assigner les uns aux autres.
 
Lexique
p : pointeur
p_T : ^T
 
Ces opérations sont possibles :
 
p:=p_T
p_T:=t_T
 
Cependant, on ne peut utiliser les procédures new() et delete() en leur passant un pointeur générique en paramètre. En effet, le type de la donnée pointée étant inconnu le système d'exploitation de peut savoir combien d'espace réservé.
 
=== Exemple avec des entiers ===
 
Algorithme exemple
Lexique
p : pointeur
p_entier : ^entier
début
new(p_entier)
p_entier^:=1
p:=p_entier
p_entier:=p
ecrire(p_entier^) (* affiche 1 *)
fin
 
== Les effets de bord ==