gpt4 book ai didi

c++ - 在销毁时执行自动内存覆盖的模板

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:19 26 4
gpt4 key购买 nike

使用模板强制编译器初始化原始/POD 类型值(https://stackoverflow.com/a/11493744/16673http://www.codeproject.com/Articles/825/Using-templates-for-initialization)是一种常见的模式。

出于安全原因,是否存在可用于在值超出范围后删除该值的类似模式,以确保一旦变量被破坏,该值就不会留在堆栈中?恐怕天真的类似实现可能行不通,因为编译器可以自由地忽略对超出范围的值的任何赋值,因为可以简单地证明该值不再被使用。是否有一些一致且合理便携的解决方案,例如使用 volatile ?

最佳答案

Windows API 中有一个名为 SecureZeroMemory 的函数。您可以查看它的实现。

但是,一般来说,编译器被迫接受 volatile 写入。如果您将变量设置为易变的,它应该无法删除写入。

关于c++ - 在销毁时执行自动内存覆盖的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12258577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com