1.

for(int i=0;i<sizeof(res)/sizeof(res[0]);i++){cout<<res[i]<<endl;
}

报错:comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]

意思大致是int类型的无符号与有符号类型不能比较:sizeof()返回的值是无符号类型的,而int是有符号类型的:当两者比较时i会转变为一个无符号数计算,有发生溢出的风险。

在比较时编译器自动进行的转换:

有符号与无符号比较:有符号数会转换成无符号数来进行比较(如int 与 unsigned int 比较,int 转换成 unsigned int)。

有符号与非无符号数比较:非无符号转化成有符号(如int 与 unsigned char比较,unsigned char 转换成 int)。

无符号与非有符号数比较:非有符号转化成有符号(如unsigned int 与 char比较,char 转换成 unsigned int)。

解决方法:

1.把无符号数转变为有符号数,可使用强制类型转换,在sizeof()前加(int);

2.把有符号数转变为无符号数,可以在定义时把int i换成unsigned int i;

2.

报错:warning: unused variable ‘x’ [-Wunused-variable]

意思是定义的变量未使用

解决方法:

1. 该变量定义了不使用留着干嘛!果断直接删掉

2.在变量前加(void)比如:int x;//定义变量x,(void)x;//瞒过编译器

3.

报错:==42==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000001e0 at pc 0x00000034be3a bp 0x7ffd608eb800 sp 0x7ffd608eb7f8

后面一大堆报错代码我就不复制粘贴了,总而言之就是数组下标越界,以下是报错代码

while(index<nums.size()){while(nums[index]==1&&index<nums.size()){//错误点calculate++;index++;}  if(calculate>conclusion){conclusion=calculate;}                                                                                calculate=0;if(nums[index]!=1&&index<nums.size()){//错误点index++;}
}

在看到报错代码后,我也知道要加一个判断条件防止下标越界,就加在了数组操作的后面,结果还是报错,后来加到前面后才解决:

while(index<nums.size()){while(index<nums.size()&&nums[index]==1){//先判断下标是否越界,再对数组元素进行操作calculate++;index++;}  if(calculate>conclusion){conclusion=calculate;}                                                                                calculate=0;if(index<nums.size()&&nums[index]!=1){//先判断下标是否越界,再对数组元素进行操作index++;}
}

原因:

编译器根据运算先后顺序读取,对于&&运算符两边条件,编译器从左向右读取,若左边条件不满足,则直接false,不会向后读取,

当数组越界时会直接报错,不会再读取后面的判断条件,所以必须先加判断条件,再对数组进行操作

C++学习中的编译器报错相关推荐

  1. 《一起学习rgbdSLAM》中g2o部分报错的问题

    <一起学习rgbdSLAM>中g2o部分报错的问题 在高博的<一起学习rgbdSLAM>第六讲中使用到了g2o工具.但是由于版本问题,按照高博的写法来编写代码在编译过程中会报错 ...

  2. 关于Visual Studio 中“scanf”输入报错的解决方法

    有很多初次接触VS的同学会发现,当我们在写完一段代码,代码中用到scanf输入变量时,在调试编译的过程中就会出现错误: warning C4996: 'scanf': "This funct ...

  3. php的old函数,laravel单元测试之phpUnit中old()函数报错解决

    php 的 laravel单元测试之phpUnit中old()函数报错解决 前言 最近在做laravel单元测试.遇到了一个问题: 当添加的view里面使用old()函数时就会报错,正常url访问没问 ...

  4. Python中调用FRED报错ValueError: time data 'fred' does not match format '%Y-%m-%d'

    Python中调用FRED报错ValueError: time data 'fred' does not match format '%Y-%m-%d' 小白一枚,刚学习python调用FRED等数据 ...

  5. python中unexpected indent报错的解决办法

    python中unexpected indent报错的解决办法 在我们初步学习pyton的时候,由于对python语言的学习掌握不充分,则会导致所编写的代码,运行时候报错.比如,容易报错的unexpe ...

  6. anconda安装后命令行中安装tensorflow报错

    现象  anconda安装后命令行中安装tensorflow报错 pip install --upgrade --ignore-installed tensorflow-gpu Building wh ...

  7. K.O. -------- Eclipse中Maven的报错处理

    ----------------------siwuxie095 K.O. -------- Eclipse 中 Maven 的报错处理 1.报错一: A 'Maven Build' configur ...

  8. python无法启动该程序因为计算机中丢失_python报错:无法启动此程序,因为计算机中丢失...

    原标题:python报错:无法启动此程序,因为计算机中丢失 python报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-|1-1-0.dll api-ms-win- ...

  9. Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法

    Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法 1).容器中登录my ...

最新文章

  1. solr5.3.1 集成IK中文分词器
  2. 《黑客秘笈——渗透测试实用指南》—第2章2.4节Web应用程序的扫描
  3. PHP单元测试使用手册
  4. 性能测试组件CodeBenchmark V2发布
  5. 人力资源经理的选择(转载)
  6. 如何避免内存泄漏?(C++)
  7. 【概率论】边缘分布和联合分布
  8. html中table美化,漂亮的css table样式
  9. HTTP 412状态码
  10. Spire.Office for Java 7.10.FIX[7.9.9]-全新版
  11. 【面试题】数字转成汉字形式
  12. 插值法(最邻近,双线性,双三次),图像放缩 python实现
  13. 阿里云云开发平台的创建与部署
  14. 走近棒球运动·芝加哥小熊队·MLB棒球创造营
  15. 【vscode插件集】学前端一年,珍藏的 40个 vscode 插件
  16. CGroup的原理和使用
  17. 攻防世界高手进阶区 ——forgot
  18. 流利说:通过数据分析评估获客效率
  19. 使用nginx临时搭建rtmp服务器
  20. springboot+mybatis+Oauth2 +vue 框架实现登录认证

热门文章

  1. matlab 漫游小镇_2019台湾新玩法——漫游小镇
  2. T300最长递增子序列
  3. vnc连接云主机,vnc连接云主机怎么连接,有哪些好用的软件
  4. 【Unity】Entities 1.0 学习(二):调试工具
  5. 3个分辨胀气肠绞痛的方法,你学会了吗?
  6. 2021高考成绩查询倒计时,2021年高考倒计时时间
  7. 网页中嵌入任意web字体解决方案
  8. 以太坊地址和公钥_以太坊地址是什么
  9. MPPDB各组件介绍
  10. cnKiTTY 0.76.0.13.1—KiTTY 0.76.0.13中文版本简单说明~~