5 façons d'éviter les problèmes de pointeur en C ++
En C ++, un aiguille est une variable qui contient l'adresse d'un objet dans la mémoire interne de l'ordinateur. Suivez ces étapes pour éviter les problèmes avec des pointeurs en C ++:
Initialiser pointeurs lorsqu'ils sont déclarés.
Ne laissez jamais des variables de pointeur non initialisé - les choses ne seraient pas trop mal si pointeurs non initialisées contiennent toujours des valeurs aléatoires - la grande majorité des valeurs aléatoires sont des valeurs de pointeur illégale, elle provoquera un plantage du programme dès qu'ils sont utilisés. Le problème est que les variables non initialisées ont tendance à prendre de la valeur des autres variables de pointeur, utilisés précédemment. Ces problèmes sont très difficiles à déboguer.
Si vous ne savez pas quoi initialiser un pointeur vers, initialiser à nullptr. nullptr est garanti d'être une adresse illégale.
Zéro sur pointeurs après que vous les utilisez.
De même, toujours zéro une variable pointeur une fois que le pointeur est plus valable en lui attribuant la valeur nullptr. Ceci est particulièrement le cas lorsque vous revenez d'un bloc de mémoire sur le tas en utilisant Delete- zéro toujours le pointeur après le retour mémoire de tas.
Allouer de la mémoire à partir du tas et de le retourner au tas au même "niveau" pour éviter les fuites de mémoire.
Toujours essayer de revenir un bloc de mémoire sur le tas au même niveau d'abstraction que vous lui étaient allouées. Cela signifie généralement que d'essayer de supprimer la mémoire au même niveau d'appels de fonction.
Attrapez une exception à supprimer la mémoire si nécessaire.
Ne pas oublier qu'une exception peut se produire à presque tout moment. Si vous avez l'intention d'attraper l'exception et continuera exploitation (plutôt que de laisser le plantage du programme), assurez-vous que vous attrapez l'exception et retourner tous les blocs de mémoire sur le tas avant les pointeurs qui pointent vers eux sortent de la portée et de la mémoire est perdu.
Assurez-vous que les types correspondent exactement.
Assurez-vous toujours que les types de pointeurs correspondent au type requis. Ne pas remanier un pointeur sans raison spécifique. Considérez ce qui suit:
fn (int * p) -annuler myFunc () {A'-char * pC char c = '= c-fn ((int *) PC) -}
La fonction ci-dessus compile sans plainte depuis le PC pointeur de caractère a été remanié à un int * pour correspondre à la déclaration de fn (int *) - cependant, ce programme sera presque sûrement pas travailler. La fonction fn () attend un pointeur vers une pleine entier de 32 bits et non pas quelque pacotille 8 bits omble. Ces types de problèmes sont très difficiles à démêler.
A propos Auteur
Comment examiner les variables avec le code :: bloc débogueur pour la programmation de c Parfois, le problème avec vos instructions de programmation en C ne peut être déterminée en se contentant de regarder le déroulement du programme. Nope, vous devez descendre et sale dans la mémoire et de regarder la valeur d'une variable alors…
Comment libérer de la mémoire avec la fonction malloc () dans la programmation de c Voici un secret: Déclarer une variable dans la programmation C est en réalité la direction du programme pour mendier un peu d'espace de stockage à partir du système d'exploitation. Comme vous le savez (espérons-le, vous savez), le système…
Comment remplacer des pointeurs pour la notation de tableau dans la programmation de c Les tableaux dans le langage de programmation C ne sont rien, mais une bouilloire pleine de mensonges! Vraiment, ils ne existent pas. Comme vous le découvrirez la puissance du pointeur, vous venez d'accepter qu'un tableau est simplement un pointeur…
Comment utiliser des pointeurs et des cordes dans la programmation de c Le langage de programmation C manque une variable de chaîne, mais il a le tableau de caractères, qui est effectivement la même chose. Comme un tableau, une chaîne en C peut être complètement tordu, serrée, et abusée par l'utilisation de…
Comment travailler avec des pointeurs dans la programmation de c Le pouvoir du pointeur dans la programmation C provient à la fois de son dédoublement de la personnalité ainsi que de sa capacité à changer les valeurs, comme une variable.Plus de pointeur Fun, trois variables CHAR sont déclarés à la ligne 5…
Les tableaux et les pointeurs en C ++ Le nom du tableau est un pointeur vers le tableau lui-même. La tableau est une séquence de variables stockées dans la mémoire. La nom du tableau des points sur le premier élément.Ceci est une question intéressante à propos des pointeurs:…
De commencer la programmation en C ++ pour les nuls C ++ est plein de petits symboles, dont chacun ajoute à la signification des expressions. Les règles de la grammaire C ++ sont si souples que ces symboles peuvent être combinés dans des combinaisons presque impénétrable complexes. Les…
Déclarer un pointeur en C ++ UN carboniser variable dans C ++ est conçu pour contenir un caractère ASCII, un int un nombre entier, et un double un nombre à virgule flottante. De même, une variable de pointeur est conçu pour contenir une adresse mémoire. Vous déclarer une…
Comment les opérateurs d'adresses travaillent en c ++ Comme le dit le dicton, Tout le monde doit être quelque part . La variable C est stocké Chaque quelque part dans la mémoire de l'ordinateur. La mémoire est divisé en différents octets, chaque octet portant sa propre adresse…
Comment fonctionne le tas en C ++ La tas est un bloc amorphe de mémoire que votre programme C ++ peut accéder si nécessaire. En savoir plus sur pourquoi il existe et comment l'utiliser.De même qu'il est possible de faire passer un pointeur à une fonction, il est possible pour…
Comment passer des pointeurs vers les fonctions en C ++ Une des utilisations de variables de pointeur en C ++ est en passant des arguments aux fonctions. Pour comprendre pourquoi cela est important, vous avez besoin de comprendre comment les arguments sont passés à une fonction.Passage par valeur en C…
Comment utiliser le mot-clé const en C ++ UN aiguille est une variable qui n ° 148 points à; d'autres variables en C ++. Le mot-clé const signifie qu'une variable ne peut pas être changé une fois qu'il a été déclaré et initialisé.const deux PI = 3.1415926535-Les arguments…
Pointeurs de fonctions en C ++ Quand une application est en cours d'exécution, les fonctions de l'application exister dans la mémoire- donc comme tout le reste dans la mémoire, ils ont une adresse. Et avoir une adresse est bonne, car de cette manière, les gens peuvent vous…
Faire le pointeur de la souris plus visible dans les PC Windows Ayant du mal à voir le pointeur de la souris sur l'écran de votre PC? L'onglet Options du pointeur dans la boîte de dialogue Propriétés de la souris dans Windows contient une foule d'options pour vous aider à faire le pointeur de la souris…