| 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
    Les inconvénients de pointeurs en C
    Dans le langage de programmation C , les pointeurs des informations d'adresse du magasin pour les emplacements de mémoire dans l'ordinateur . Ils permettent également un programme pour permettre à demander à l'ordinateur pour la mémoire (ou mémoire " Occupation" ) lors de l'exécution . Parce pointeurs face à mémoire dynamique , ils viennent avec certains dangers et les inconvénients malgré leur nécessité. Fuites de mémoire

    Quand un programme demande la mémoire grâce à l'utilisation d'un pointeur , ce pointeur doit continuellement référence à la mémoire allouée . Si à tout moment un emplacement de mémoire allouée n'a pas de pointeur correspondant (si tous les pointeurs faisant référence à la mémoire des " pointes " d'ailleurs) , que la mémoire ne peut plus être consultée par le programme. Cette mémoire est désormais « orphelins ». Toutefois, l'ordinateur considère toujours cette mémoire allouée . En tant que programme fonctionne en permanence , et les mêmes lignes de code sont exécutés des millions de fois , une erreur dans l'allocation de mémoire par une erreur de pointeur peuvent remplir rapidement la mémoire disponible avec les données inaccessibles , provoquant une fuite de mémoire.
    pointeurs NULL

    pointeurs qui ne se réfèrent pas à une adresse en mémoire sont appelés pointeurs "null" . Bien qu'elles remplissent des fonctions utiles à la programmation (comme signifiant erreurs d'allocation mémoire ) , un problème majeur se produit lorsque " déréférencement " un pointeur nul ( déréférencement d'un pointeur moyens pour accéder aux données à l'emplacement de mémoire référencé par le pointeur ) . Quand on écrit un programme , pas de contrôles de sécurité manipuler le déréférencement d'un pointeur NULL. En effet, un vaste programme ne peut accidentellement déréférencer un pointeur NULL , quelque part au fond de millions de lignes de code. Lorsque le code est exécuté , cependant, un pointeur null déréférencé causera un programme visant à planter.
    Buffer Overflow

    Un dépassement de mémoire ( ou " buffer overflow " ) se produit lorsque la mémoire allouée par un pointeur n'est pas assez grande pour l'entrée qu'il reçoit. Par exemple, si un programme alloue de la mémoire pour un mot de sept caractères et reçoit en entrée un mot neuf caractères , les deux personnages supplémentaires sont stockés en mémoire en dehors de la mémoire de pointeurs de sept caractères . Les deux personnages supplémentaires écrasera tout ce qu'il contient. Il n'existe aucun moyen pour le programme de connaître ce qui existe dans ces deux emplacements de mémoire supplémentaires . Ils pourraient contenir des données sensibles pour le programme ( comme les variables du programme ) , ou même pour l'ordinateur lui-même. Cela conduit à la «corruption des données, " car les données qui auraient dû être intact en dehors de la mémoire allouée est maintenant compromise.

    Previous :

    next :
      articles connexes
    ·Comment débogage dans Visual C + + 
    ·Comment lire un fichier à ListBox en C # 
    ·Comment appeler un destructeur en C + + 
    ·Comment créer un générateur aléatoire en C 
    ·Comment créer des événements MFC 
    ·Comment écrire un programme C pour Trouver la série d…
    ·Comment compiler avec un fichier d'en-tête 
    ·Comment insérer un tableau dans le premier élément e…
    ·Comment écrire un Iterator STL 
    ·Les différences dans Malloc et calloc 
      articles en vedette
    ·Comment Faire bouillir Ham Corned 
    ·Débutant Visual Basic 2008 Tutorial 
    ·Comment ajouter des images à JPanels 
    ·Comment mettre à jour un DataRow en C # 
    ·Comment écrire une classe et créer une instance en Ja…
    ·Comment initialiser un tableau en C 
    ·Comparaison de chaînes en JSP 
    ·Comment faire pour modifier les métadonnées pour une …
    ·Comment insérer un délai en secondes pour C + + 
    ·Comment ajouter un CRM à un POS 
    Copyright © Connaissances Informatiques http://fr.wingwit.com