Off-por-um erro

No processamento de dados , um erro do tipo off-by-one ( OBOE , “erro de deslocamento da unidade”) é um erro lógico  (in) que implica o equivalente discreto de um problema nos limites . Ela aparece regularmente na programação quando o loop s ' itera muito ou pouco. Portanto, o erro pode surgir quando um programador comete erros, como usar o comando "menor ou igual a" em um lugar onde deveria ter usado "menor que". O erro também pode ocorrer quando ele esquece que uma série começa em zero em vez de em 1.

segurança de TI

Um típico off-por-um erro em segurança de computadores é causada por má gestão de rotina strncat . Um equívoco generalizado strncaté que a terminação nula garantida não será gravada além do comprimento máximo. Na verdade, o comando gravará um caractere nulo um byte além do comprimento máximo especificado.

Exemplo de erro off-by-one com strncat

void foo (char *s) { char buf[15]; memset(buf, 0, sizeof(buf)); strncat(buf, s, sizeof(buf)); // Le paramètre final devrait être : sizeof(buf)-1 return; }

Exemplo de matemática

A fórmula da série geométrica é escrita

Um erro "off-by-one" seria escrever

porque esta última série começa com o termo .

Notas e referências

(fr) Este artigo foi retirado parcial ou totalmente do artigo da Wikipedia em inglês intitulado Off-by-one error  " ( veja a lista de autores ) .
  1. (em) Edsger Wybe Dijkstra , "  Por que começar a numerar do zero (EWD 831)  " , EW Dijkstra Archive, University of Texas at Austin ,2 de maio de 2008

Veja também

Artigos relacionados

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">