zoukankan      html  css  js  c++  java
  • terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr

    运行时报错:

    terminate called after throwing an instance of 'std::out_of_range'
    what():  basic_string::substr:__pos

    Aborted (core dumped)

    内存读取越界。

    解释1:for example:
    const std::string sTest( "test" );
    sTest.substr( 0, 10 );
    will raise the same exception, since you ask 10 characters, but only 5 ( sTest.length()) ) are available.

    调试过,正常运行,无报错。

    解释2:

    Chances are you did something like:

    std::string s("foo");

    s.substr(5,1); //the length of the string is 3, 5 is out of bounds

    调试过,确实会报错,out_of_range

    解决方案:查找substr方法前后代码,排除可能的越界条件。

  • 相关阅读:
    GDUFE ACM-1020
    GDUFE ACM-1069(简单的巴什博弈)
    GDUFE ACM-1138
    GDUFE ACM-1009
    GDUFE ACM-1008
    GDUFE ACM-1005
    LCA 最近公共祖先
    51nod
    51nod
    51nod
  • 原文地址:https://www.cnblogs.com/cthon/p/9349813.html
Copyright © 2011-2022 走看看