std::string crash的问题
来源:互联网 发布:java 数据交换平台 编辑:程序博客网 时间:2024/05/01 10:39
今天遇到一个 std::string 字符串crash的问题。
问题代码如下面:
#include <iostream>int main(void){std::string str;char *str2 = 0x00;str = str + "hello" + str2;return 0;}
crash的时候,调用栈如下:
(gdb) bt full#0 strlen () at ../sysdeps/arm/armv6t2/strlen.S:85No locals.#1 0xb6f7735c in length (__s=0x0) at /home/charles/code/build_toolchain/build/gcc_final/arm-linux-gnueabi/libstdc++-v3/include/bits/char_traits.h:259No locals.#2 std::string::append (this=0xbed69cf4, __s=0x0) at /home/charles/code/build_toolchain/build/gcc_final/arm-linux-gnueabi/libstdc++-v3/include/bits/basic_string.h:1009No locals.#3 0x00010910 in std::operator+<char, std::char_traits<char>, std::allocator<char> > (__lhs=..., __rhs=0x0) at /toolchain/arm-linux-4.8.2/arm-linux-gnueabi/include/c++/4.8.2/bits/basic_string.h:2406 __str = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x21014 "hello"}}#4 0x000107e4 in main () at test200.cpp:8 str = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xb6fa3d38 <std::string::_Rep::_S_empty_rep_storage+12> ""}}---Type <return> to continue, or q <return> to quit--- str2 = 0x0可以看出,crash的原因是,函数 length()传入了一个空指针。
这个length函数原型为:
std::size_t std::char_traits<char> lengfth(const char_type *);
这和c的函数 strlen()行为是不一样的; strlen()可以接收一个空指针,返回的值为0.
0 0
- std::string crash的问题
- std::nth_element bug引起的crash问题
- android std::string(NULL) crash
- std::string引用计数引起的问题
- std:string跨模块出错的问题
- 关于std::string的使用问题
- std::string的substr越界问题
- std::string格式化字符串的问题
- std::string::assign 崩溃的问题
- std::string的用法
- 全局的std::string
- std::string的用法
- std::string的用法 .
- GBK中文编码和std::string的冲突问题
- 二进制std::string 与QString转换的问题
- C++ 在DLL中使用std::string乱码的问题
- 关于字符串指针初始化std::string的一个小问题
- C++ std::string和C字符串之间的问题
- 栈的顺序存储 - 设计与实现 - API实现
- 文章标题
- tomcat调试 持续更新中
- 解决shell脚本中 echo 怎么写入换行到文件
- 使用HttpSessionListener接口监听Session的创建和失效
- std::string crash的问题
- Valid Number
- poj 1129 Channel Allocation (DFS 图的染色问题)
- [NOI2014]起床困难综合症(二进制拆分+贪心)
- iOS_小问题积累(duplicate symbo)
- Scala java maven 混合开发 pom配置
- IOS:解决在ScrollView中添加子控件,子控件往下偏移的问题
- 在ADT中如何选择自己想要的模拟器来运行Android Application
- universalImageLoader为什么使用缓存技术