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);
}