Alo*_*ave 6 c++ undefined-behavior
我准备为C++自我和同行代码评审准备一份清单或指南,因为有太多的场景可能导致可怕的领域Undefined Behavior,我想要提出一种在大多数使用最多的未定义行为的清单C++语言结构.
当然,不可能通过修改变量来预测未定义的行为,Sequence points但我认为可以列出从其他场景中发现的场景.
如果您正在执行代码审查,Undefined Behavior您会注意哪些常见的生成方案?
仅删除新增的指针。例如,您无法调用p = new int [5];,delete p+2;这可能会导致未定义的行为。
另外,当尝试使用 dll 时,仅使用原始类型,因为不同的编译器会创建不同的内存布局,如果您尝试交换类或结构,这可能会导致一些问题。
我能想到的另一件事是留意已删除的内存,在某些情况下,您可以从这些位置写入和读取,而不会出现任何错误或访问冲突,但它始终是未定义的行为。
| 归档时间: |
|
| 查看次数: |
1918 次 |
| 最近记录: |