C - free() 或 memset() 为零和 free()?

Posted

技术标签:

【中文标题】C - free() 或 memset() 为零和 free()?【英文标题】:C - free() or memset() to zero and free()? 【发布时间】:2017-04-13 14:37:57 【问题描述】:

您好,我只是在 *** 上阅读所有问答,但无法找到确切的信息,无论是仅由 malloc() 分配的 free() 内存还是由 memset() 将其设置为零然后free()避免潜在的进一步使用数据(因为 afaik free() 保持数据完好无损)(避免任何其他程序在我离开时读取数据)。 谢谢

【问题讨论】:

【参考方案1】:

某些编译器(例如 Microsoft 编译器)会将值设置为 0xfeeefeee,以便您可以检查内存并查看它是否已被释放。 这对于调试和查找访问不再有效的内存地址的问题很有用,您还可以添加断言以帮助在运行时查找这些问题。

【讨论】:

以上是关于C - free() 或 memset() 为零和 free()?的主要内容,如果未能解决你的问题,请参考以下文章