DeBUG Assertion Failed! (Oh no!)
Visual Studio2010\include\xstring
line 1440
Expression: string subscript out of range
我没有选择中止…似乎它将它转换为错误点,所以我不确定发生了什么.我的代码很简单:
#include <iostream>#include <iomanip>#include <string>using namespace std;int main(){ string hello = "Hello World"; int i = 0; while(hello.length()) { cout << setfill('0') << setw(2) << hex << (unsigned int)hello[i]; i++; } return 0;}
这个程序应该做的是将每个字母转换为十六进制 – char by char.
解决方法 你的状况不正确:while(hello.length())
循环永远不会终止,并且我变大(超过字符串长度减去1),并且当您访问该索引处的字符串时,您将获得运行时断言.
将其更改为:
while(i < hello.length())
或者更好地使用迭代器.
总结以上是内存溢出为你收集整理的C超出下标范围全部内容,希望文章能够帮你解决C超出下标范围所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)