* Agence Drupal Rouen
***Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe
Agence Drupal Rouen
Article:
l'utilisation des pointeurs est très rigide dans certains langages. Le fait que l'on soit directement en contact avec la mémoire sans aucun contrôle, complexifie le développement d'une application. Si nous abordons une zone mémoire qui ne nous est pas allouée, le processeur via le système d'exploitation produira une erreur de segmentation qui provoquera une exception voire fera planter l'application. En plus, comme les allocations mémoire sont effectuées en partie par le développeur, il doit également se charger de la libération de la mémoire lorsqu'il n'en a plus besoin, au risque de voir une fuite mémoire apparaître. Tous ces désavantages forcent le développeur à prendre en charge des choses auxiliaires, assombrissant ainsi l'application et pouvant ajouter des bugs. Pour toutes ces raisons, les pointeurs sont dévisagés avec une certaine méfiance. 01 Informatique les a qualifiés d'« aussi puissants qu'ils sont dangereux »1, en expliquant les atouts du langage D. En effet, au vu des atouts et contrariétés des pointeurs, ce langage a été conçu pour en autoriser l'usage aux programmeurs appréciant leur efficacité, tout en gratifiant fréquemment des solutions alternatives à ceux qui s'en méfient. Certains langages excluent brutalement l'utilisation exp de pointeurs. La majorité des langages de programmation utilisent (ou au moins permettent) le passage de paramètres par valeur. Typiquement, si n est un entier, alors l'appel de fonction f(n) ne pourra pas modifier n même si dans le code de la fonction, l'argument est incrémenté. La raison est que la valeur de la variable n est d'abord copiée, si bien que la fonction f peut lire et écrire cette copie de la variable n, mais ne peut pas modifier la variable n originale. Les pointeurs souscrivent le passage en argument d'une fonction l'adresse d'une variable, et ainsi l'ac en lecture et en écriture à la variable originale, et ce dans le code de la fonction. Dans la majorité des langages de programmation sans pointeurs, par exemple Python, Java ou Javascript/Actionscript, les variables ou objets sont toujours exprimés par valeur, mais l'ac aux champs de ces objets se fait par référence ou par adresse. Précisément, si o est un objet, alors f(o) ne pourra modifier o, mais pourra modifier (s'ils existent) les champs de o, par exemple s'il existe le champ o.taille de l'objet o original pourra être incrémenté dans le code de la fonction. Ainsi, en passant par référence / adresse les champs des objets, c'est-à-dire en précisant un objet comme étant une liste de références / pointeurs sur ses champs, il devient possible d'implémenter toutes les structures de données qui requièrent des pointeurs tels que les arbres, les listes chaînées, etc...