Pergunta

No meu código, estou usando uma matriz xyz de 10 objetos. Quando estou tentando acessar um elemento da matriz usando um índice int não assinado como este: xyz[level], Eu recebo 'Buffer Overn' aviso. Logicamente, tenho certeza de que o nível não excede 10. Como evitar esse aviso?

Foi útil?

Solução

Provavelmente estou ensinando à minha avó a chupar ovos aqui, mas lembre -se de que "o nível não excederá 10" está errado para uma variedade de tamanho 10:

char a[10];
a[10] = '\0';  // Bug, and "Buffer Overrun" warning.

Outras dicas

Você é verdade claro? Eu nunca recebi esse aviso até agora. Então, verifique duas vezes.

Enfim, você pode usar o

#pragma warning( disable: 6386 )

Directiva do pré-processador. Eu geralmente empurro e coloco isso para a "pilha de pragma"

#pragma warning( push )
#pragma warning( disable : 6386 )
// Some code
#pragma warning( pop )

conforme recomendado aqui.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top