[英]How to convert memcpy to memcpy_s?
我只是C的初學者。我用C編寫了一個帶有大量memcpy函數的代碼。 我想將memcpy語句轉換為memcpy_s ..我不太明白這樣做的語法。
這是我的代碼片段:
signed char buffer[MAX];
unsigned char len;
const char *scenario = ConvertMap[identity];
len = strlen(scenario);
memcpy((void*)&buffer[0],scenario,len);
如何將最后一行轉換為memcpy_s? 是這樣的:
memcpy_s((void*)&buffer[0], sizeof(buffer), scenario, len)
?
代碼可以是:
memcpy_s(buffer, sizeof(buffer), scenario, len)
雖然如果你打算復制一個以null結尾的字符串,你可能想要使用len+1
。 (但在這種情況下,請使用strcpy_s
)。
此外,您應該考慮錯誤情況:如果memcpy失敗(緩沖區將被清空),請設計其余代碼以使其正常運行,或檢查返回值並在失敗時采取措施。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.