2016-06-22 1 views
0

Je lis sur le code unsafe, principalement pour travailler avec Bitmaps. Je ne peux cependant pas trouver une explication des limites de l'insécurité. Je comprends que l'utilisation de pointeurs sur un tableau ne sera pas vérifiée, donc je pourrais essayer d'accéder à la mémoire en dehors de ses limites. Jusqu'ici tout va bien. Mais que faire si accéder à cette mémoire. Ce qui se produit? Puis-je changer les valeurs d'autres variables? Ou même changer le code binaire du programme? Ou juste augmenter une exception? Je voudrais savoir quel est le pire qui puisse arriver avant que je décide d'utiliser un code dangereux.Comment dangereux est un code dangereux?

+2

Comportement indéfini. Vous ne pouvez pas prédire ce qui pourrait arriver avec un certain degré de certitude sans connaître le contexte exact dans lequel votre programme s'exécute. – itsme86

+0

@ itsme86 Merci. Je suppose, cependant, qu'il y a quelques limites connues. Par exemple, mon code ne peut pas accéder à la mémoire réservée aux autres processus sur l'ordinateur, de sorte qu'il ne peut pas planter d'autres programmes ou le système d'exploitation. Droite? (Non compris l'utilisation de ressources, je veux dire - il ne peut pas modifier leur espace de mémoire Est-ce correct?) – ispiro

+0

Cette question serait-elle plus appropriée pour [Programmers StackExhcange] (http://programmers.stackexchange.com/)? Sinon, une bonne question :) – Roman

Répondre

0

Un code non sécurisé peut entraîner des fuites de mémoire ou d'autres erreurs aléatoires. Le code dangereux n'est pas sûr pour une raison. Par exemple, en C++, vous disposiez de pointeurs qui pointaient vers des blocs de mémoire sur la machine physique. Il y a tellement de choses différentes qui pourraient mal se passer avec un pointeur qu'il vaut mieux ne pas les utiliser si vous n'êtes pas sûr de ce que vous faites. Je pense que la même chose peut être dite de code dangereux en C#. itsme86 a raison, c'est très imprévisible.