Recibo una advertencia cuando uso la función de copia estándar.Problema al utilizar std :: copy
Tengo una matriz byte
que declaro.
byte *tstArray = new byte[length];
entonces tengo un par de otras matrices de bytes que se declaran e inicializan con unos valores hex que me gustaría utilizar en función de una cierta entrada de usuario inicial.
Tengo una serie de sentencias if que utilizo básicamente para analizar la entrada original, y en base a alguna cadena, elijo qué matriz de bytes usar y al hacerlo copio los resultados al tstArray original.
Por ejemplo:
if(substr1 == "15")
{
std::cout<<"Using byte array rated 15"<<std::endl;
std::copy(ratedArray15,ratedArray15+length,tstArray);
}
La advertencia que consigo es C4996 advertencia: 'std :: copia': llamada a función con parámetros que pueden ser inseguros - esta llamada se basa en la persona que llama para comprobar que los valores pasados son correctos.
Una posible solución es desactivar esta advertencia usando -D_SCL_SECURE_NO_WARNINGS, creo. Bueno, eso es lo que estoy investigando.
Pero, no estoy seguro de si esto significa que mi código es realmente inseguro y realmente necesitaba hacer algunas comprobaciones?
parece que no puede obtener el código para enviar ... por ejemplo si (substr1 == "15") { std :: cout << "Uso de matriz de bytes nominal de 15" << std :: endl ; std :: copy (ratedArray15, ratedArray15 + length, tstArray); } – djones2010
Lo arreglé por ti. Para publicar el código, solo sangría cuatro espacios y coloque una nueva línea antes y después del bloque de código. Además, hay un botón en el editor que puede usar para hacer eso automáticamente. –
Significa que hizo muchas preguntas, pero solo hizo clic en la marca de verificación para aceptar una respuesta como "correcta" en el 11% de las preguntas que hizo. –