* Joomla 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
Joomla Saint Etienne
Article:
l'emploi des pointeurs est très puissant dans certains langages. Cette puissance (et surtout le fait que l'on touche directement à la mémoire sans aucun contrôle) obscurcit le développement d'une application. Si l'on ne fait pas attention et que l'on accède à 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 provoquera une exception voire fera planter l'application. De plus, comme les allocations mémoire sont réalisé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 inconvénients amènent le développeur à prendre en charge des choses supplémentaires, brouillant ainsi l'application et pouvant majorer des bugs. C'est pourquoi les pointeurs sont considérés avec une certaine méfiance. 01 Informatique a estimé qu'ils sont « aussi puissants qu'ils sont dangereux »1, en expliquant les atouts du langage D. En effet, au vu des avantages et inconvénients des pointeurs, ce langage a été créé pour en admettre l'usage aux programmeurs appréciant leur efficacité, tout en fournissant constamment des solutions alternatives à ceux qui s'en méfient. L'utilisation exp de pointeurs n'est pas autorisée par certains langages. La plupart des langages de programmation se servent du 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. Grâce aux pointeurs, il devient envisageable de passer en argument d'une fonction l'adresse d'une variable, et ainsi d'atteindre en lecture et en écriture à la variable originale, et ce dans le code de la fonction. Des langages de programmation sans pointeurs, comme Python, Java ou Javascript/Actionscript, les variables ou objets sont toujours passés par valeur, mais l'ac aux champs de ces objets se fait 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. De la sorte, en passant par référence / adresse les champs des objets, c'est-à-dire en spécifiant un objet comme étant une liste de références / pointeurs sur ses champs, il devient possible d'ajuster toutes les structures de données qui nécessitent des pointeurs tels que les arbres, les listes chaînées, etc...