0


C/C++未定义行为的例子汇总

一、什么是未定义行为?

    未定义行为(Undefined Behavior)是指**C语言标准未做规定的行为**。同时,标准也从没要求编译器判断未定义行为,所以这些行为有编译器自行处理,在不同的编译器可能会产生不同的结果,又或者如果程序调用未定义的行为,可能会成功编译,甚至一开始运行时没有错误,只会在另一个系统上,甚至是在另一个日期运行失败。当一个未定义行为的实例发生时,正如语言标准所说,“什么事情都可能发生”,也许什么都没有发生。

    一句话,未定义行为就是运行结果不确定,可能运行成功,可能失败,可能结果不同

二、未定义行为的例子

大家只要正确的写代码就行,别搞这些未定义的行为。

1. 指针的未定义行为:

解引用空指针解引用没被初始化的指针(野指针)使用指向生命周期已结束的对象的指针指针的越界访问

2. 其他未定义行为

有符号的整数的算数溢出数组越界访问访问未初始化的变量对字符串常量进行修改对于有返回值的函数,不返回返回值变量同时是左值和右操作数输出语句中的无顺序打印(这里特指此类**printf( "%d %d" ,++i , --i );**)C++中的new / delete,new [ ] / delete [ ],malloc / free 没有配对使用
参考博客:洛谷日报:关于 C++ 未定义行为的一些事 - 知乎

标签: c++ 开发语言

本文转载自: https://blog.csdn.net/2302_76941579/article/details/134546096
版权归原作者 小程序面包园 所有, 如有侵权,请联系我们删除。

“C/C++未定义行为的例子汇总”的评论:

还没有评论