* Typo3 Saint Etienne
***Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe
Typo3 Saint Etienne
Article:
l'utilisation des pointeurs est très solide dans certains langages. Cette solidité complexifie le déploiement d'une application. Si l'on ne se méfie pas et que l'on approche à une zone mémoire qui ne nous est pas allouée, le processeur via le système d'exploitation génèrera une erreur de segmentation qui incitera une exception voire fera planter l'application. Puisque les allocations mémoire sont réalisées en partie par le développeur, il doit également s'occuper 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 inconvénients astreignent le développeur à s'occuper des choses supplémentaires, embarrassant ainsi l'application et pouvant augmenter des bugs. Ainsi, les pointeurs sont scrutés avec une certaine méfiance. 01 Informatique les a qualifiés d'« aussi puissants qu'ils sont dangereux »1, en déployant les atouts du langage D. En effet, au vu des avantages et inconvénients des pointeurs, ce langage a été créé pour en autoriser l'usage aux programmeurs appréciant leur efficacité, tout en occasionnant constamment des solutions alternatives à ceux qui s'en méfient. Certains langages font fi de 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. Avec les pointeurs, il devient facile de passer en argument d'une fonction l'adresse d'une variable, et ainsi d'accéder en lecture et en écriture à la variable originale, et ce dans le code de la fonction. Pour ce qui est des langages de programmation sans pointeurs, par exemple Python, Java ou Javascript/Actionscript, les variables ou objets sont toujours passés par valeur, mais l'ac aux champs de ces objets s'opère par référence ou par adresse. Typiquement, 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 modélisant 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 nécessitent des pointeurs tels que les arbres, les listes chaînées, etc...