-
Gestion des erreurs c
Bonjour,
je débute en C, et j'aimerai savoir est-ce qu'il existe une méthode pour contrôler que l'on ne lit pas des emplacements mémoire hors d'un tableau ?
J'ai l'habitude du java qui fait un "exception out of bound". Je pense que l'on peut le faire manuellement en récupérant le range mémoire du tableau, mais ça me parait très lourd à faire.
Merci
-
Bonjour,
Il n'y a rien de standard en C, à ma connaissance, pour ce faire. Ce n'est pas vraiment un oubli. C'est plutôt dû au fait que le langage C permet justement de travailler « en dessous » de cette couche de contrôle qui, au passage, consomme elle-même des ressources non négligeables pour faire ces contrôles.
Cela dit, étant donné que le C n'envoie pas d'exception non plus, le fonctionnement d'un tel système resterait à définir. Le plus naturel serait l'appel d'un gestionnaire comme ceux des signaux Unix mais cela nécessiterait quand même beaucoup de code sous-jacent.
Par contre, ton débogueur ainsi que des outils comme valgrind (jamais essayé dans ce cas de figure) doivent être capables de les détecter.
Enfin, d'une manière générale, lorsque la déclaration de ton tableau est visible par l'unité de code sur laquelle tu travailles, tu peux toujours utiliser sizeof() pour en retrouver la taille.
-
Merci de ta réponse, je m'y attendais un peu. Donc je vais faire des tests manuel plutot qu'automatique ;)