-
Detecter les B.O
Bonjour,
Je rencontre de nombreux problèmes de B.O à cause des tableaux de char, caractères nuls ect...
Alors, j'aimerai savoir s'il existe des outils pour analyser les sources d'un prog et trouver les erreurs susceptiblent d'engendrer des BO ?
Tenez, par exemple, en ce moment, mon prog m'affiche en ligne de commande, des trucs du genre " c:/^ù$ù*ù ". Et je passe bêtement des heurs à chercher la chaîne qui n'a pas de '\0' .
Merci
++
-
Une solution : programme en C++ :lol:. Les classes std::string et autres te permettront de programmer sans te soucier de ça. A nouveau, voir dans la FAQ pour des exemples.
-
Si je comprends bien, des B.O. ce sont des BufferOverflow ?
Effectivement, l'utilisation de std::string est vivement recommandée afin de limiter les problèmes de buffer overflow, de mauvaise allocation, etC...
En fait, ça a été créé pour éliminer ces soucis là.
-
sinon il y les classiques memory checker: pof, purify, valgrind, BoundChecker...
Mais si tu n'as des problèmes que pour des chaines de caractères, il vaut mieux effectivement utiliser std::string.
-
En C++, le fait d'utiliser les containers enlève tout ce genre de problèmes, en plus d'autres.
-
rajoute tout de même qu'il faut employer un pointeur intelligent provenant de la boost par exemple, afin d'optimiser les choses et eviter les pertes de mémoire lors de la destruction du container.