像这样使用 memcpy 安全吗?

林韦努扎
memcpy(buf, buf + (pos - offset), len);

然而,

0<=pos<=strlen(buf), 0<=offset<=strlen(buf)

memcpy()在这种情况下使用安全吗?如果没有,会出现什么问题?请建议最佳做法。

胡言乱语

不,不是。使用memmove来代替。

如果使用时内存区域重叠memcpy,则行为未定义。虽然它可能看起来工作取决于实现。

参考:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重新定义像 memcpy 这样的标准还有性能优势吗?

这样使用安全吗?

这样使用varargs安全吗?

memcpy()/ mktime()在iOS和Android上是线程安全的吗?

使用EJBContext getContextData-这样安全吗?

这样使用std :: promise线程安全吗?

可以在Appcelerator中像这样使用scrollabeView吗?

微调javascript,像这样使用它正确吗?

可以使用像“strftime”这样的日期函数吗?

可以使用memcpy()更改“ const”成员数据吗?

使用Btrfs安全吗?

使用HttpClientFactory安全吗?

ConcurrentDictionary 使用安全吗?

memcpy()通常比strcpy()快吗?

这样使用字符串指针安全吗?

为什么像这样使用dispatch_block_t不安全?

这样创建master分支安全吗

在php中这样做安全吗?

这样的部分升级安全吗?

这样制作启动画面安全吗?

在C ++中返回*这样安全吗?

我们可以在C ++代码中使用像coremotion这样的iOS框架吗

我可以在我的 CSP 中使用像 https://sub-*.domain.com 这样的通配符吗?

使用js和PHP裁剪像Google Plus这样的封面照片吗?

我们可以使用像 & 符号这样的动画关键帧名称吗?

我可以在 C++ 中使用像 ** vector < pair <int ,vector < int >> > vec** 这样的声明吗?

像git这样的终端程序可以在Ubuntu Touch上使用吗?

在像 AWS lambda 这样的无状态 FaaS 上使用 PostgreSQL 是个好主意吗?

我应该在像stl这样的代码中使用const T&而不是T &&吗