При использовании функции копирования std я получаю предупреждение.
У меня есть массив byte
, который я объявляю.
byte *tstArray = new byte[length];
Затем у меня есть пара других байтовых массивов, которые объявлены и инициализированы с некоторыми шестнадцатеричными значениями, которые я хотел бы использовать в зависимости от некоторого начального пользовательского ввода.
У меня есть серия операторов if, которые я использую для анализа исходного ввода, и на основе некоторой строки я выбираю, какой байтовый массив использовать, и при этом копирую результаты в исходный tstArray.
Например:
if(substr1 == "15")
{
std::cout<<"Using byte array rated 15"<<std::endl;
std::copy(ratedArray15,ratedArray15+length,tstArray);
}
Предупреждение, которое я получаю,
предупреждение C4996: 'std :: copy': вызов функции с параметрами
это может быть небезопасно
- этот вызов полагается на вызывающего абонента, чтобы проверить, что переданный
значения верны.
Возможное решение состоит в том, чтобы отключить это предупреждение, используя -D_SCL_SECURE_NO_WARNINGS, я думаю. Ну, это то, что я исследую.
Но я не уверен, означает ли это, что мой код действительно небезопасен, и мне действительно нужно было провести некоторую проверку?