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
∑não=0+∞qnão=11-q.{\ displaystyle \ sum _ {n = 0} ^ {+ \ infty} q ^ {n} = {\ frac {1} {1-q}}.}
Um erro "off-by-one" seria escrever
12+14+...=11-12=2{\ displaystyle {\ frac {1} {2}} + {\ frac {1} {4}} + \ ldots = {\ frac {1} {1 - {\ frac {1} {2}}}} = 2.}
porque esta última série começa com o termo .
não=1{\ displaystyle n = 1}
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 ) .
-
(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;">