Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
LINUX & OPEN SOURCE
23 juin 2011

les risques d'erreur de segmentation en Vala

Vala est moins succeptible aux erreurs d'allocation mémoire, aux erreurs de segmentation que le C. Mais quelques risques subsistent. Dans mon précédent billet, je vous ai parlé du problème du split, dans celui-ci je vais abordé le problème des tableaux, et en particulier lorsqu'on dépasse les limites du tableaux. Prenons le petit exemple qui suit:

string[] str = {"ABC","DEF","GHI"};
message(str[5]);

La table str ne contient que 3 chaines, et on tente d'accèder à une chaine en position 5. À l'execution du programme, on obtiendra un segmentation fault car str[5] n'est pas défini.

Pour éviter ce type d'erreur, il faut vérifier que l'index soit dans les limite de la table. On utilise pour cela str.length pour connaitre le nombre d'éléments dans la table str.
Voici un exemple:


if (idx < 0 || idx >= str.length) {
  message("Erreur - indexe hors limites");
  exit(-1);
}

 

Publicité
Publicité
Commentaires
LINUX & OPEN SOURCE
Publicité
Archives
Publicité