C ++编程中常见的未定义行为

以下是C ++编程中未定义行为的最常见原因。请注意,所有这些都在标准中指定以导致未定义的行为,并且在编写程序时应不惜一切代价加以利用。

  •  有符号整数溢出

  • 取消引用NULL指针后,该指针由大小为零的“新”分配返回,该指针尚未明确初始化,该指针位于数组末尾之外的位置。

  •  使用指向超出范围或已删除的对象的指针

  •  执行指针算术,其结果超出数组的范围。

  • 将指针转换为不兼容类型的对象

  •  以负偏移量读取或写入对象或数组

  •  从对象的构造函数或析构函数对对象的纯虚函数进行虚函数调用

  •  不从值返回函数返回值