Selon à qui vous demandez , les pointeurs sont soit une bénédiction ou une malédiction. Pointeurs fournissent un mécanisme permettant d'accéder et de modifier directement les objets et les codes en mémoire. Les pointeurs sont utilisés dans de nombreux langages de programmation pour la manipulation des chaînes de caractères , passant des paramètres à des fonctions, la manipulation des tableaux de données , et de créer les listes chaînées et d'autres structures de données complexes. Alors que les pointeurs vous fournir une grande souplesse pour la gestion mémoire et l'optimisation des algorithmes , il ya des inconvénients . Apprendre à utiliser des pointeurs est difficile pour de nombreux programmeurs , et le débogage des problèmes de pointeur est difficile. Optimisation pointeurs offrent un avantage de performance en vous permettant d' accéder à la mémoire de l'ordinateur directement . Dans un programme d'ordinateur, le moyen le plus rapide pour accéder et modifier un objet est d'accéder directement à la mémoire physique où cet objet est stocké. Cette technique est couramment utilisée pour optimiser les algorithmes qui nécessitent un accès fréquent ou répétitif de grandes quantités de données . Sécurité accès direct à la mémoire signifie que vous pouvez faire des choses que peut-être vous ne devrait pas. Selon la langue , le compilateur et la plate-forme informatique, vous pourriez involontairement ( ou volontairement ) mémoire qui n'est pas la vôtre pour y accéder. En conséquence , vous pouvez écraser la mémoire critique , de modifier le code d'une application qui s'exécute ou faire votre demande ou une autre application de se comporter ou fermer de façon inattendue . Une erreur courante consiste à exécuter après la fin d'un tableau , l'accès à la mémoire au-delà de la fin de l'espace alloué pour ce tableau. Gestion de la mémoire Gestion de l'utilisation de la mémoire dans une application utilisant des pointeurs offre une grande flexibilité mais aussi une corvée. L'allocation et désallocation mémoire que nécessaire lors de l'exécution vous permet de créer des objets volumineux , tels que des tableaux, rapidement et immédiatement libérer la mémoire quand il n'est plus nécessaire . Cependant, il est aussi facile de créer des fuites de mémoire en réaffectant un pointeur sans libérer la mémoire qu'il pointait à la première . Collecte des ordures ménagères est de votre responsabilité . Paramètres de fonction fonctions peuvent renvoyer qu'une seule valeur , mais ils peuvent prendre de multiples paramètres. En passant des pointeurs vers des variables comme paramètres , une fonction peut être utilisée pour définir les valeurs de ces variables , et les nouvelles valeurs persistera après le retour de la fonction. Etre capable de définir la valeur de plusieurs variables à la fois avec un seul appel de fonction est propre et efficace. Cependant, il peut être un peu déroutant de lire parce que vous ne pouvez pas dire si les variables passées en sera modifiée ou non en regardant simplement l'appel de fonction . Vous devrez consulter la documentation de la fonction à apprendre comment se comporte la fonction pointeurs de fonctions pointeurs ne sont pas seulement pour les objets en mémoire ; . Ils peuvent également être utilisés pour les fonctions , permettant ainsi une fonction qui doit être passé en paramètre à une autre fonction . Un pointeur de fonction peut être assignée l' adresse de l' un d'un choix de fonctions de sorte que le pointeur agit comme une sorte d' alias. Langages de programmation orientés objet ont éliminé la nécessité pour les pointeurs de fonction avec l'héritage et le polymorphisme . Pointer Confusion pointeurs sont un sujet de confusion pour de nombreux programmeurs , notamment ceux rencontrés dans l'utilisation des langues qui ne figurent pas pointeurs et l'accès direct à la mémoire . Toutefois , la persistance conduit rapidement à la maîtrise des pointeurs. Les pointeurs sont souvent accompagnés de syntaxe obscure . Conventions de nommage cohérentes peuvent aider votre code soit plus lisible. Par exemple, les conventions de nommage communes comprennent l'utilisation de «P_ » ou « ptr_ " comme préfixe aux noms de variables de pointeur. Conseils Toujours utiliser les fonctions de l'affectation prévue par le langue pour la mémoire de l'allocation , et assurez-vous que la mémoire a été allouée avant de l'utiliser . Soyez prudent avec la gestion de la mémoire et libérer de la mémoire quand il n'est plus nécessaire . Si vous réaffecter un pointeur vers une nouvelle adresse mémoire , assurez-vous que la vieille mémoire est libérée ou affecté à un autre pointeur . Assurez-vous que les pointeurs créés dans des fonctions sont assignées propriété à la portée des parents ou que la mémoire est libérée avant de quitter la fonction.
|