Bonjour,
Je m'interroge sur le passage d'un tableau dynamique comme paramètre d'une procédure. Jusqu'à présent, je croyais qu'il n'était pas nécessaire, dans la déclaration de la procédure, de faire précéder le paramètre de la mention "var" pour que ce dernier soit transmis par référence (le tableau dynamique étant en fait un pointeur).
Autrement dit, les déclarations :
devaient, selon moi, permettre de modifier le tableau transmis comme paramètre de la procédure AjoutElement. C'est en particulier ce qui ressort du "Reference Developer Studio 2006 - Guide du langage Delphi" (pp. 159-160) fourni avec Turbo Delphi 2006 (la version que j'utilise).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 type TTabInt = array of Integer; procedure AjoutElement(Tab: TTabInt; Elem: Integer);
Or, à ma grande surprise, une telle syntaxe ne permet pas de modifier le tableau transmis en paramètre (on récupère en sortie exactement le tableau fourni en entrée !). Autrement dit, tout se passe comme si le passage du tableau se faisait par valeur (Delphi gérerait une recopie complète du tableau ??).
En revanche, l'utilisation de la syntaxe :
permet bien de modifier le tableau fourni en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part procedure AjoutElement(var Tab: TTabInt; Elem: Integer);
Ma question est donc la suivante : y'a-t-il eu dans les dernières versions de Delphi des évolutions au niveau des conventions de passage des paramètres de type pointeur dans les procédures et les fonctions ?
Y'a-t-il éventuellement une variable d'environnement à ajuster, afin de revenir à un fonctionnement conforme à ce qui est décrit dans la documentation du logiciel ?
Je vous remercie par avance pour toute info utile sur ce sujet.
Partager