C++ 如果在基本字符串达到c+中的最大值后再添加一个字符,会发生什么+;
C++ 如果在基本字符串达到c+中的最大值后再添加一个字符,会发生什么+;,c++,libstdc++,C++,Libstdc++,#00x00008432126cda64 instd::basic_string::empty()const()from/lib64/libstdc++.so.6 代码在libstdc++empty()函数处崩溃 这是标准的空函数发生的情况在Statnard中定义: bool empty() const _NOEXCEPT { // test if sequence is empty return (this->_Mysize == 0); } 如果任何操作将
#0
0x00008432126cda64 instd::basic_string::empty()const()
from/lib64/libstdc++.so.6
代码在libstdc++empty()函数处崩溃
这是标准的空函数发生的情况在Statnard中定义:
bool empty() const _NOEXCEPT
{ // test if sequence is empty
return (this->_Mysize == 0);
}
如果任何操作将导致size()
超过max\usize()
,则该操作将抛出类型为length\uerror
的异常对象
不清楚这个问题是关于什么的,因为标题与文本/代码不一致。在
empty
中唯一可能失败的操作是取消引用此
。因此,您似乎正在对无效指针调用empty
,例如对不再存在(已销毁)的对象调用该指针。这将是一个很好的位置。在您的代码中,崩溃发生在哪里?你在那里做什么?空测试与添加一个大于最大值的大小有什么关系?