当我们在 C 中free()
内存时,为什么内存没有被零填充?有没有什么好的方法可以确保在调用 free()
时理所当然地发生这种情况?
我宁愿不冒险将内存中的敏感数据释放回操作系统...
最佳答案
释放内存块时将内存块清零将需要额外的时间。由于大多数时候实际上不需要它,因此默认情况下不会完成。
如果您真的需要(比如您使用内存来存储密码或加密 key )- 在释放 block 之前调用 memset()
。编写链接 memset()
和 free()
的实用函数也不是问题。
关于c - 为什么 free() 在释放内存之前不将其清零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1287180/