使用std copy函數時出現警告。我有一個byte
我聲明的數組。使用std :: copy的問題
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 ::複製」:帶參數 函數調用可能不安全 - 這個調用依賴於調用方檢查通過的 值是正確的。
一個可能的解決方案是禁用此警告是通過使用-D_SCL_SECURE_NO_WARNINGS,我認爲。那麼,這就是我正在研究的。
但是,我不確定這是否意味着我的代碼真的不安全,我實際上需要做一些檢查?
不能似乎得到的代碼後... 例如 如果(substr1 == 「15」) { 的std ::法院<< 「使用字節數組評爲15」 <<的std :: ENDL ; std :: copy(ratedArray15,ratedArray15 + length,tstArray); } – djones2010 2010-02-23 21:38:10
我爲你修好了。要發佈代碼,只需縮進四個空格並在代碼塊前後放置一個換行符。另外,編輯器中有一個按鈕可用於自動執行此操作。 – 2010-02-23 21:39:15
這意味着你已經提出了一堆問題,但只有點擊了複選標記才能接受一個答案,因爲你提出的問題中有11%是正確答案。 – 2010-02-23 22:05:03