簡體   English   中英

如何將memcpy轉換為memcpy_s?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM