Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
  Derniers articles
  • Comment créer des paquets TCP /IP d…
  • Comment faire un programme multiple …
  • Comment faire pour ajouter des minut…
  • Comment concevoir éditeur utilisati…
  • Comment écrire un programme C pour …
  • Comment calculer la somme des nombre…
  • Comment faire Addition de vecteurs e…
  • Comment faire pour augmenter la tail…
  • Comment compiler avec un fichier d'e…
  • Qu'est-ce que cela signifie si un fi…
  •   C /C + + Programming
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    C /C + + Programming

    Quels inconvénients sont là dans déréférencement implicite des pointeurs

    ? Pointeurs de déterminer le type d'objet d'un programme de logiciel suppose est dans un emplacement mémoire spécifique . Les pointeurs peuvent être convertis en nombres entiers spécifiques ou des références implicites. Les pointeurs peuvent référencer d'autres pointeurs et des ensembles de données. Déréférencement de pointeurs implicite introduit le risque d'erreurs logicielles et des vulnérabilités qui ne se produisent lorsque les pointeurs sont explicitement définies. Pointeurs explicites Versus implicite
    La variable sur la droite est implicitement fait référence à l'équation sur la gauche.

    conversions de pointeurs explicites changer un type de pointeur à un autre type de pointeur . Modification d'un nombre entier ou byte à un pointeur est également une conversion explicite . C + + permet la conversion implicite d'un type de pointeur type void * . Littéraux Null peuvent avoir une conversion implicite pour n'importe quel type de pointeur. Variables sur le côté droit d'une instruction d'affectation sont implicitement déréférencé comme ils prennent de la valeur des valeurs sur le côté gauche de l'instruction d'affectation . Tous déréférencement est implicite dans Java.
    Déréférencer opérateurs

    En C + + , des pointeurs vers les membres du groupe doivent être déréférencé dans le contexte d'un objet de classe . A. * Opérateur déréférence un pointeur vers un membre d'un objet de classe . Une flèche suivie d'un astérisque déréférence un pointeur vers un membre avec un pointeur vers un objet de classe . Utilisation de l' opérateur d'indirection de " *" dans le langage de programmation C est appelée déréférencement d'un pointeur. Un pointeur est définie en utilisant l'expression ptr = variable ou valeur . Un pointeur déréférencé est définie en utilisant l'expression * ptr = variable ou valeur .

    Erreurs

    déréférencement d'un pointeur peut conduire à des valeurs non valides si l'adresse est référencée après la fin de sa durée de vie . Quand un pointeur est déréférencé , le programme appelle la valeur référencée par le pointeur . Pointeurs nuls ont une valeur par défaut si 0x0 statique et non initialisée. Selon le « Guide de l' Exploitation de Kernel " par Enrico Perla, " Si le chemin du noyau tente de déréférencer un pointeur NULL, il va simplement essayer d'utiliser l'adresse 0x0 de mémoire , ce qui entraînera probablement dans un état de panique , puisque rien n'est mappé il . " le pointeur doit être définie en utilisant la commande * ptr avant que le pointeur déréférencé peut être utilisé ailleurs dans un programme C .

    Si l' * ptr n'est pas attribué une valeur avant d'être référencé , le programme peut se bloquer. Les pointeurs vers les membres de données peut entraîner une mauvaise déréférencer . Si le pointeur ne cherche pas des valeurs à partir d'un tableau d'objets de classe et ne peut pas déterminer la valeur de la variable, une erreur se produit . " C + + Trucs et astuces " de Stephen C. Dewhurst stipule que « un pointeur vers un membre désigne un membre spécifique d'un objet quelconque . " L' objet référencé doit être alimenté aussi bien pour le pointeur de travailler correctement .
    < Br > vulnérabilités

    déréférencement implicite d'un pointeur non initialisé crée une vulnérabilité du code logiciel . Corruption de mémoire corrompt un pointeur qui devient déréférencé . Déréférencer un pointeur non initialisé provoque le logiciel pour faire référence à un emplacement de mémoire qui n'est pas validé . Sans contrôle de la source ou la destination du pointeur déréférencé , les pirates peuvent utiliser cette vulnérabilité pour passer d'une adresse du noyau pour le noyau du logiciel et modifier sa mémoire avec leurs propres valeurs souhaitées à la place des données de l'utilisateur .
    < Br >

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment obtenir frappes en C + + 
  • Comment faire pour utiliser le contrôle de votre page sur iPhone SDK 
  • Comment créer un histogramme utilisant le code de programmation C 
  • Comment faire pour ajouter ou supprimer des tableaux de pointeurs 
  • Comment écrire un programme en C qui calcule la date de demain 
  • Comment attacher le débogueur en C # 
  • Comment trier Deux colonnes indépendantes dans le DataGridView 
  • Comment faire un site Web Mashup 
  • Comment utiliser des tableaux C en C + + 
  • Comment surcharger une fonction en C + + 
  • Connaissances Informatiques © http://www.ordinateur.cc