std::memset 坑点的疑问
  • 板块学术版
  • 楼主lzy20091001
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/4/12 22:52
  • 上次更新2024/4/13 15:48:21
查看原帖
std::memset 坑点的疑问
932039
lzy20091001楼主2024/4/12 22:52

以下引用自 std::memset - cppreference.com:

若 std::memset 所修改的对象在其生存期的剩余部分不再被访问,则此函数可以被优化掉(在如同规则下)(例如 gcc 漏洞 8537)。为此,此函数不能用于擦洗内存(例如以令填充存储密码的数组)。

该问题的解决方案包含 volatile 指针的 std::fill,(C23) memset_explicit(),(C11) memset_s,FreeBSD explicit_bzero,或 Microsoft SecureZeroMemory。

请问这个怎么理解?在 OI 中是否可以浅显地认为 std::memset 只能用于程序开始时的初始化?

2024/4/12 22:52
加载中...