2022.02.21 UB

参考资料:

https://zhuanlan.zhihu.com/p/141467895

https://blog.csdn.net/ghscarecrow/article/details/115429174

Step 1 UB定义

在 C/C++ 中,和未定义行为容易混淆的概念有两个,实现定义行为未指明行为。这里先对这几个概念做一个辨析。

实现定义行为:程序的行为随实现而变动,遵从标准的实现必须为每个这样的行为的效果提供文档。一个例子是 int 在不同环境下的大小(标准规定为至少 16 位,现在大多数环境下均为 32 位)。

未指明行为:程序的行为随实现而变动,而不要求遵从标准的实现为每个行为的效果提供文档。虽然行为在变动,但它产生的结果均应该是合法的。一个例子是变量分配的方式和位置(可以把一次定义的不同变量分配到一片连续的空间,当然也可以分开分配)。

未定义行为:对程序的行为无任何限制。前两类行为的结果都要求是合法的,而对于未定义行为,则不要求程序做任何合法,有意义的事情。一个例子是访问非法内存。

Step 2 常见产生UB的原因

2.1 越界访问

简而言之,数组越界等 神奇的问题。

2.2 变量没有初始化

如今天做的洛谷5546题,一直没有把 vis 数组初始化,导致二分写挂了。

2.3 有符号整数算数溢出

一些更为神奇的问题,总是忘,直接 #define int long long ,实在不行改成 unsigned long long ,怎么大怎么来,只要不MLE。

Step 3 解决对策

目前除了自己一行一行找,我还布吉岛windows怎么解决这个问题。

Step 4 后记

今天,可怜的eleveni整整把P5546写了三遍,写的都快心态炸裂了!!

2022.02.21 UB的更多相关文章

  1. 2022.02.21 SA

    2022.02.21 SA 当我年少轻狂时,我曾拥有自由,但我并不明白它的意义.我曾拥有时间,但我没有意识到它的珍贵.我曾拥有爱,但我从未用心去体会.数十年的时间考验后,我终于理解了三者的真谛. 我已 ...

  2. 2022.02.20 SA

    2022.02.20 SA 如果我还能看见明天黎明,如果我还能再爬起来,我仍会走我的路,哪怕这条路已经荒废许久,也许我们无法拥有感情,我们甚至无法像个正常人一样接受太阳的洗礼,但是我依然会执行我的条约 ...

  3. FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM

    FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM T.. = Timeline support 支持时间轴 .S. = Slice t ...

  4. http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html

    http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html

  5. ROS的安装-> rosdep init /update报错2022.02.24实测有效

    ROS的安装-> rosdep init /update报错2022.02.24实测有效   一. 解决rosdep_init问题 正常执行sudo rosdep init会报错,如下: ERR ...

  6. 2022.02.27 CF811E Vladik and Entertaining Flags

    2022.02.27 CF811E Vladik and Entertaining Flags https://www.luogu.com.cn/problem/CF811E Step 1 题意 在一 ...

  7. 2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集)

    2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集) https://www.luogu.com.cn/problem/CF811E Ste ...

  8. [2017.02.21] 《Haskell趣学指南 —— Learning You a Haskell for Great Good!》

    {- 2017.02.21 <Haskell趣学指南 -- Learning You a Haskell for Great Good!> [官网](http://learnyouahas ...

  9. Cocos2dx游戏源码合集(BY懒骨头+持续更新+2014.02.21)

    转自:http://blog.csdn.net/iamlazybone/article/details/19612941 声明: <萝莉快跑><喵汪大战>两个demo的原作者b ...

随机推荐

  1. [SPDK/NVMe存储技术分析]002 - SPDK官方介绍

    Introduction to the Storage Performance Development Kit (SPDK) | SPDK概述 By Jonathan S. (Intel), Upda ...

  2. file_put_contents利用技巧(php://filter协议)

    Round 1 <?php $content = '<?php exit; ?>'; $content .= $_POST['txt']; file_put_contents($_P ...

  3. .Net Core 实现账户充值,还款,用户登录(WebApi的安全)

    个人未开通网站: http://justin1107.pc.evyundata.cn/vip_justin1107.html Api using System; using System.Collec ...

  4. 关于IIS站点最大并发量分析

    关于IIS站点最大并发量分析,会有如下这个疑问:IIS站点最大并发量是多少? 一般为:   IIS站点最大并发量=队列长度+进程数量[即最大工作进程数] 通过这个公式,可以基本评估出一个IIS站点的最 ...

  5. 为MySQL加锁?

    在日常操作中,UPDATE.INSERT.DELETE InnoDB会自动给涉及的数据集加排他锁,一般的 SELECT 一般是不加任何锁的.我们可以使用以下方式显示的为 SELECT 加锁. 共享锁: ...

  6. Spring Cloud第一次请求报错问题

    一.原因 我们在使用Spring Cloud的Ribbon或Feign来实现服务调用的时候,第一次请求经常会经常发生超时报错,而之后的调用就没有问题了.造成第一次服务调用出现失败的原因主要是Ribbo ...

  7. Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?

    Elasticsearch 提供的首个近似聚合是 cardinality 度量.它提供一个字段的基数, 即该字段的 distinct 或者 unique 值的数目.它是基于 HLL 算法的.HLL 会 ...

  8. Numpy实现SVD矩阵分解

    1. 引入包 2. 实现矩阵分解 3. 从分量还原矩阵

  9. 16_伯德图_手绘技巧与应用_Bode Plot_Part2

  10. BFC理解

    Block formatting context (块级格式化上下文) 页面文档由块block构成 每个block在页面上占据自己的位置 使用新的元素构建BFC overflow:hidden | a ...