Ajouter un commentaire

K-lo
[résolu]Sécurisé son code - iterator

Voilà je cherche à sécuriser mon code pour repérer un éventuel dépassement de la mémoire lorsque j'utilise un iterator d'un vector (par exemple) :

function copieApreTraitements(std::vector _v){
std::vector v1, v2;
//Traitements
v1.assign(_v.begin(), _v.begin() + 8);  // risque ici
//Traitements
v2.assign(_v.begin()+8, _v.end()); // risque ici
}

Cette fonction n'est qu'un exemple et les traitements intermédiaires n'ont rien à voir avec ma question.
Mais en utilisant cette fonction avec comme parametre un vector dont le nombre d'entrée est de 4, je vais produire une très jolie erreur de dépassement de mémoire. j'ai essayer un bloc try - catch mais ça n'a pas l'air de relever une exception :?
Je pourrais tester la taille du vector passé en argument de ma fonction mais là n'est pas le but de ma question.

Ce que j'aimerais si possible, c'est d'avoir un comportement simillaire à la méthode at() d'un vector (sachant que at() n'as pas grand chose a voir avec les iterator je me retrouve un peu coincé). :oops:

Sans pour autant passer à JAVA :lol: :lol: :lol:

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 RRRR   III  RRRR       J  V     V 
R R I R R J V V
RRRR I RRRR J V V
R R I R R J J V V
R RR III R RR JJJ V