相关疑难解决方法(0)

如何解释未知行为以了解所有新手?

有一些情况,C++标准将其定义为未定义的行为.例如,如果我分配new[],然后尝试释放delete(不delete[])那是未定义的行为 - 任何事情都可能发生 - 它可能会起作用,它可能会崩溃,它可能会默默地破坏某些东西并设置一个定时问题.

解释这一点很有问题,新手可能会发生任何事情.他们开始"证明""这是有效的"(因为它确实适用于他们使用的C++实现),并询问"这可能是什么问题"?我能给出什么简洁的解释会激励他们不写这样的代码?

c++ undefined-behavior

35
推荐指数
5
解决办法
1639
查看次数

限制由未定义行为引起的混乱?

正如我从阅读中理解的那样,未定义的行为是编译器在编译时留下几个不同的替代品的结果.但是,这并不意味着如果要遵循严格的编码实践(比如将每个赋值和每个相等放在一个单独的语句中,进行适当的调试和注释)那么它在查找未定义的源代码时不会构成重大问题. -行为.

此外,对于每个出现的错误,如果您识别代码,您应该知道在该特定语句中可以使用哪些语句,对吗?

编辑:我对你编写的代码不感兴趣的地方不感兴趣.我对通过数学逻辑发声的代码无法工作的示例感兴趣.

此外,我认为"良好的编码实践"是每隔几行,适当的缩进和调试转储的强大信息性评论.

c++ language-agnostic undefined-behavior

5
推荐指数
2
解决办法
499
查看次数