Incrémentation et décrémentation de pointeurs
Utilisez les conseils suivants :
Pointez sur les octets de prospect, et non sur les octets de fin. Il est généralement dangereux d’avoir un pointeur vers un octet de fin. Il est généralement plus sûr d’analyser une chaîne vers l’avant plutôt que dans l’inverse.
Il existe des fonctions d’incrémentation/décrémentation de pointeur disponibles qui se déplacent sur un caractère entier :
sz1++;
devient :
sz1 = _mbsinc( sz1 );
Les
_mbsinc
fonctions et_mbsdec
incrémentent correctement et décrémentent encharacter
unités, quelle que soit la taille du caractère.Pour les décréments, vous avez besoin d’un pointeur vers la tête de la chaîne, comme dans les éléments suivants :
sz2--;
devient :
sz2 = _mbsdec( sz2Head, sz2 );
Sinon, votre pointeur de tête peut être vers un caractère valide dans la chaîne, de sorte que :
sz2Head < sz2
Vous devez avoir un pointeur vers un octet de prospect valide connu.
Vous souhaiterez peut-être conserver un pointeur vers le caractère précédent pour accélérer les appels vers
_mbsdec
.