View Single Post

YANNICB's Avatar


YANNICB
01.07.2013 , 04:09 PM | #14
Quote: Originally Posted by Xhylette View Post
Certains compilateurs gèrent très bien les allocations en mémoire, mais c'est au prix d'une charge de calcul supplémentaire. Certains autres te permettent de faire n'importe quoi, mais sont beaucoup plus rapides.

C'était le cas lorsque je programmais autrefois dans le langage PL/1 d'IBM. Si par malheur, j'allouais une valeur erronée à un pointeur (une adresse mémoire), j'écrasais involontairement quelque chose ailleurs, soit une autre variable, soit même, et là c'était beaucoup plus grave, une partie du code.

Alors, rends toi bien compte ce que signifie écraser une partie du code lorsqu'un programme est en pleine exécution. Sur le moment même, rien ne se passe. Mais si cinq minutes plus tard, il a besoin de cette partie du code complètement corrompue, au lieu de trouver des instructions binaires valides, il trouve tout et n'importe quoi, et exécute tout et n'importe quoi, provoquant un chaos invraisemblable et incompréhensible. Le problème en tel cas, c'est que la cause est très éloignée de l'effet.
.
Décidément 2013 sera comique ou pas !!....

Un compilateur transcrit en langage machine (binaire) un code source écrit dans un langage de programmation.

Le code compilé est exécuté par la machine et n'écrase en aucun cas le code source dans le cas d'une erreur d'allocation mémoire. Sauf à dire que la fonction du dit programme est de supprimer un fichier qui peut être le source.

J'ai vu bien des programmes assembleurs tournés pendant des années avec une tribu d'informaticiens priant pour que les loads ne disparaissent pas par erreur.

Tu n'as de cesse de démontrer à la face du monde ton ignorance dans certains domaines.

Pour 2013, je te souhaite humilité, écoute et introspection.