问题来源: B组  PAT1057  PAT1079

两个样例:

PAT1057:

//char two[10000];
//string two = new string[100];
string two;
int i = 0;
while (sum != 0) {two[i++] = sum % 2 + '0';sum /= 2;
}

PAT1079:

string s;
int up = 0;
int sum = 0;
int k = 0;
for (int i = s1.size() - 1; i >= 0; i--) {sum = s1[i] - '0' + s2[i] - '0';//运行时报错: string subscript out of ranges[k++]=((sum + up) % 10 + '0');up = (sum + up) / 10;
}

相关资料:

查阅后,细看了这个链接,初步解决问题:(7条消息) c++程序运行时出现string subscript out of range--CSDN问答

总结与思考:

1.string subscript out of range: 即字符串边界溢出

溢出:  对string s未初始化,如果要对s进行操作,需对s进行初始化,给其分配相应的存储空间

初始化: 为string变量分配内存空间  (没有空间,谈何操作)

通俗解释: 存在string s的空间大小在访问下标为k=0的数组元素时,都无法正常访问的可能性

2.string是动态分配类型,问题转为: 动态分配类型变量未初始强行以下标形式访问元素

首先,明确string的动态分配不是根据下标分配,而是所储存的数据大小

而,下标访问操作是动态分配的空间大小确定后才能进行的操作

插入内容: 动态内存类型可以根据插入内容的大小调控其空间

string虽然是动态内存,但不会自动分配所需空间,如果未对string插入内容,下标访问操作就

会报错,故需要先让string分配到所需大小的空间

3.string动态分配内存的三种方式

1. insert函数           2. +=           3. ="    "

4.对小标题2也可以这么理解:

string s;
char c;
s.insert(c);
s+=c;
s="动态分配内存的三种方式";

代码块内的三种操作先有赋值(插入)操作(的意图), 后根据赋值(插入)大小动态调控空间, 最后输入值成功插入(访问)刚分配的空间

而,下面的代码:

#define MAX 100
string s;
char c;
for(int i=0;i<MAX;i++){s[i]=c;
}

先去访问下标为i的位置的空间, 然后向该空间进行赋值操作, 但因为s未初始化,下标i对应的空间自然没有被分配, 导致赋值操作无法正常进行, 即没有空间去放置输入的元素, 发生溢出

c++运行错误: string subscript out of range相关推荐

  1. java.lang.StringIndexOutOfBoundsException: String index out of range: 0错误的原因

    2019独角兽企业重金招聘Python工程师标准>>> java.lang.StringIndexOutOfBoundsException: String index out of ...

  2. String index out of range: -4 错误解析

    报这个错误是由于对字符串进行操作的过程中抛出了StringIndexOutOfBoundsException异常 下面的几种方法均有可能抛出上述异常: String.substring() Strin ...

  3. Vector使用报错:Expression:vector subscript out of range

    做题的时候遇到一个简单的排序题目: 一共有个学生,每个学生有两门成绩,主课成绩和副课成绩,先按照主课成绩排序,相同的情况下按照副课成绩排序,然后按照排序后的名单输出前名的名单: 这个题目确实很简单,却 ...

  4. PCL学习——基于B样条曲线的曲面建模程序中报错:Expression:vector subscript out of range

    本人在学习PCL中基于B样条曲线的曲面建模时,按照教程中的代码进行实操时程序报错 Expression:vector subscript out of range 经研究排查,出现此问题是由于程序中某 ...

  5. c语言 java 性能 测试_这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第...

    这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第一个是对的啊提交序号1269960作者彭云成提交时间02-0507:49:27评测结果运行错误得分.. ...

  6. Java语言所有异常类均继承自_Java将运行错误分为两类:(__)和(__), 其对应的类均派生自(__)类;...

    [单选题]设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( ) [判断题]构造函数的方法名可以由编程人员任意命名. [单选题]能够实现对原文的鉴别和不可否认性的认证技术是( ). [单 ...

  7. java ccf认证解答_CCF认证 java 中间数 遇到运行错误

    用java做中间数这道题,我在我的eclipse上运行了所有例子,结果都可以,但是在系统上测试了好几次,全是运行错误,并且是0分,请各位大神帮忙看看是哪里出了问题,谢谢!要求:问题描... 用java ...

  8. JDK8版本JAVA运行错误:找不到或无法加载主类 HelloJava的原因及解决方案

    JDK8版本JAVA运行错误:找不到或无法加载主类 HelloJava的原因及解决方案 一.错误描述 二.编写HelloJava代码 三.在命令行CMD窗口中运行代码 四.错误原因分析 解决方案 注: ...

  9. 出现运行时间错误_Excel VBA 运行错误,你知道为何突然出现错误的原因吗

    我们知道在写好的某一段程序也许在运行的时候,会出现错误的提示,导致不能正常执行我们的功能.那么你可知道,这些错误的原因是什么吗?这个错误有可能是我们的语法错误,也有可能是运行错误,具体错误需要具体进行 ...

  10. linux显示fio为非法指令,FORTRAN运行错误消息列表中英对照.doc

    FORTRAN运行错误消息列表中英对照 Fortran的运行时错误消息列表 本节列出了英特尔Fortran运行时库(RTL)处理的错误.对于每一个错误,该表提供了错误号,严重性代码,错误信息文本,条件 ...

最新文章

  1. Linux chmod命令小贴士
  2. Python学习笔记--程序控制结构
  3. python人工智能——机器学习——特征工程
  4. Vue项目目录结构注解附assets与static目录的区别
  5. 黄聪:【强烈推荐】搜索引擎排名决定一切吗!
  6. CenterOS防火墙操作
  7. CF刷刷水题找自信 2
  8. uCharts 图表
  9. 最早的支付网关(滴滴支付)和最新的聚合支付设计架构
  10. dorado7 动态生成图片
  11. AT89S52单片机C语言编程,单片机的C语言应用程序设计_基于AT89S52单片机的篮球计时计分器.doc...
  12. 如何解决电脑时间同步出错?
  13. 戴尔t420服务器重装系统教程,教你联想t420系统重装步骤
  14. Python3官方手册中文在线版
  15. 范畴论-一个单子(Monad)说白了不过就是自函子范畴上的一个幺半群而已
  16. 高德地图两种引入方式
  17. Matplotlib画图的复杂颜色设置(包括fig, ax, spines, tick)
  18. npm install WARN package.json not exists: E:\SpringBoot\workplace\D4_pc_ui\.idea\package.json
  19. 射雕英雄传人物关系python_《射雕英雄传》人物关系图
  20. Linux下system () 函数详解简介

热门文章

  1. 创业公司一年工作总结(转)(公司失败原因)
  2. 抖音开展大规模打击刷粉、刷量,账号广告导流行动
  3. 有关针式打印机和一体机的安装
  4. wrf模式计算机配置,科学网-WRF模式的运行-张乐乐的博文
  5. Freeway:Maximizing MLP for Slice-Out-of-Order Execution
  6. 【ES】Elasticsearch的特点优点 为什么比MySQL快?
  7. 一篇可以终结房价涨跌讨论的文章(…
  8. 7-9 用天平找小球
  9. 看电脑头痛计算机专业,看电脑头疼怎么回事
  10. shrinkwrap-resolver解析pom依赖