| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    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 >

    Previous :

    next :
      articles connexes
    ·L'importance des variables dans la programmation «C» 
    ·Comment utiliser les tableaux de caractères à deux di…
    ·Comment utiliser OpenGL dans Visual C 
    ·Comment trouver un maximum dans le tableau en C 
    ·Comment utiliser C + + pour obtenir Pen numéros de sé…
    ·Comment faire pour obtenir des éléments d'une matrice…
    ·Comment faire un C + + void display 
    ·Comment créer un IRC Spybot 
    ·Comment ajouter une ligne dans DataGridView 
    ·Comment utiliser le modèle de Surcharge des fonctions …
      articles en vedette
    ·Comment ajouter JButton à JPanel 
    ·Comment faire pour supprimer le premier caractère d'un…
    ·Ajout d'un nœud de TreeView 
    ·Java manipulations de chaînes pour convertir une chaî…
    ·Comment écrire une feuille XLS en CSharp 
    ·Comment écrire des formulaires HTML 
    ·Comment changer un fond d'écran avec VB.NET 
    ·Comment faire pour créer le script Java de Looping Pho…
    ·Comment appeler des procédures stockées DB2 dans les …
    ·Comment utiliser Unicode en C + + Programmes 
    Copyright © Connaissances Informatiques http://fr.wingwit.com