首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将memcpy转换为memcpy_s?

如何将memcpy转换为memcpy_s?
EN

Stack Overflow用户
提问于 2016-06-08 17:38:24
回答 1查看 9.8K关注 0票数 3

我只是一个C的初学者,我已经用C写了一段代码,里面有很多memcpy函数。我希望将memcpy语句转换为memcpy_s。我不太明白这样做的语法。

这是我的代码片段:

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

发布于 2016-06-08 19:16:30

代码可能是:

代码语言:javascript
复制
memcpy_s(buffer, sizeof(buffer), scenario, len)

不过,如果您打算复制以null结尾的字符串,则可能需要使用len+1。(但在这种情况下,请使用strcpy_s)。

此外,您还应该考虑到错误情况:或者设计代码的其余部分,以便在memcpy失败时正常运行(缓冲区将为空),或者检查返回值并在失败时采取措施。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37698758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档