C6386
Ostrzeżenie C6386: przepełnienie buforu: uzyskując dostęp do <buffer name>, rozmiar do zapisu wynosi <size1> bajtów, ale <size2> bajtów może być zapisanych: linie: x, y
To ostrzeżenie wskazuje, że zakres zapisywalny określonego buforu może być mniejszy niż indeks używany do zapisu.Może to spowodować przepełnienie buforu.
Przykład
Poniższy kod generuje zarówno to ostrzeżenie jak i ostrzeżenie C6201:
#define MAX 25
void f ( )
{
char ar[MAX];
//Code ...
ar[MAX] = '\0';
}
Aby poprawić obydwa ostrzeżenia, należy użyć następującego kodu:
#define MAX 25
void f ( )
{
char a[MAX];
// code...
a[MAX - 1] = '\0';
}