C6412C6412

Advertencia C6412: posible saturación al escribir en el búfer de búfer.warning C6412: Potential buffer overrun while writing to buffer. El tamaño de escritura es write_size bytes, pero write_index pueden escribir bytes.The writable size is write_size bytes, but write_index bytes may be written.

Esta advertencia indica que el valor del índice que se utiliza para escribir en el búfer puede superar el tamaño del búfer de escritura.This warning indicates that the value of the index that is used to write to the buffer can exceed the writeable size of the buffer.

Dado que la herramienta de análisis de código emite esta advertencia cuando no puede reducir una expresión compleja que representa el tamaño de búfer o el índice utilizado para tener acceso al búfer, esta advertencia se puede notificar en error.Because the code analysis tool reports this warning when it cannot reduce a complex expression that represents the buffer size, or the index used to access the buffer, this warning might be reported in error.

EjemploExample

El código siguiente genera esta advertencia.The following code generates this warning.

char *a = new char[strlen(InputParam)];
a[10] = 1;
delete[] a;

El código siguiente corrige este error.The following code corrects this error.

int i = strlen(InputParam);
char *a = new char[i];
if (i > 10) a[10] = 1;
delete[] a;