Evitare di avvertimento 'sovraccarico del buffer' C6386
-
26-09-2019 - |
Domanda
Nel mio codice, io sto usando un xyz
array di 10 oggetti. Quando io sto cercando di accedere a un elemento dell'array utilizzando un indice unsigned int in questo modo: xyz[level]
, ottengo 'sovraccarico del buffer ' avvertimento "nofollow noreferrer". Logicamente, io sono abbastanza sicuro che il livello non supererà il 10. Come evitare questo avvertimento?
Soluzione
Probabilmente sto insegnando mia nonna a succhiare le uova qui, ma mi ricordo che "il livello non supera il 10" è sbagliato per un array di dimensione 10:
char a[10];
a[10] = '\0'; // Bug, and "Buffer Overrun" warning.
Altri suggerimenti
Sei davvero sicuro? Non ho mai avuto questo avviso fino ad ora. Quindi, doppio controllo.
In ogni caso, è possibile utilizzare il
#pragma warning( disable: 6386 )
preprocessore direttiva. Io di solito push e pop questo al "pragma stack"
#pragma warning( push )
#pragma warning( disable : 6386 )
// Some code
#pragma warning( pop )
qui .