gpt4 book ai didi

c++ - 是否可以出于调试目的在 C/C++ 中定义/扰乱不确定值?

转载 作者:太空狗 更新时间:2023-10-29 23:19:05 29 4
gpt4 key购买 nike

未初始化的变量可能有不确定的值,如this回答一个较早的问题指出。有没有一种方法可以将这种不确定的数据指定为重复 0xDEADDEAD?不确定的数据显然是特定于编译器的,但最好将其强制为易于识别的内容。

是否存在允许这样做的现有内存泄漏/损坏检测库?在某些情况下,重载 new 似乎是一种解决方案,但我不想自己深入研究这种技巧。

问题是不确定的值通常会导致代码的未定义行为,并且很少发生运行时错误,因此,例如,如果我忘记了 memset(),我想指出在我的代码中的某个地方。甚至随机化不确定的值也可以作为测试平台。

如果这不可能,是否有更好的方法来解决问题?

最佳答案

以下是生成高质量 C 代码的一些指南:

  1. 创建/使用有助于避免内存错误(和其他类型的错误)的编码指南。网上有很多例子。最好的方法是查看 5 或 6 并将其编译成一个,只保留适合需要的内容。
  2. 使用代码审查/检查来查找错误并检查是否遵守编码指南。代码审查是发现工具无法检测到的错误的最佳方法之一。代码审查对于初学者/中级程序员来说尤为重要,因为它会增加您的学习曲线,无论是您审查其他人编写的代码还是您被审查时。
  3. 使用可以自动运行的测试用例测试您的代码。
  4. 使用 valgrind 等工具查找多种类型的错误。

关于c++ - 是否可以出于调试目的在 C/C++ 中定义/扰乱不确定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860220/

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