Incrementing e decrementar ponteiros
Use as seguintes dicas:
Aponte para levar os bytes, não rastros bytes. Não é geralmente é seguro ter um ponteiro para um byte de seguimento. É geralmente mais seguro examinar uma seqüência de caracteres para frente, em vez de na ordem inversa.
Há ponteiro incrementar/diminuir a funções e macros disponíveis que movem sobre um caractere inteiro:
sz1++;
se torna:
sz1 = _mbsinc( sz1 );
O _mbsinc e _mbsdec funções corretamente incrementam e decrementam em character unidades, independentemente do tamanho de caractere.
Diminui, é necessário um ponteiro para o chefe da seqüência de caracteres, da seguinte maneira:
sz2--;
se torna:
sz2 = _mbsdec( sz2Head, sz2 );
Como alternativa, o ponteiro de cabeçalho poderia ser um caractere válido na seqüência de caracteres, de modo que:
sz2Head < sz2
Você deve ter um ponteiro para um byte inicial de válidos conhecidos.
Talvez você queira manter um ponteiro para o caractere anterior para chamadas mais rápidos para _mbsdec.