【 在 casbupt (想不上班有钱赚) 的大作中提到: 】
: 标 题: [求助]string::push_back后,内存会破坏
: 发信站: 水木社区 (Fri May 29 16:44:01 2020), 站内
:
: size_t test(std::string& dest, const char* str, size_t len)
: {
: const char* data = str;
: while(len--)
: {
: //省略无关的逻辑
: dest.push_back(*data); 执行完这行后, *(data+1)的值被改写了
: data++;
: }
: }
:
:
: 执行完dest.push_back(*data)后, *(data+1)的值被改写了。gdb watch发现是在 std::string::push_back里面被改成‘\0’了。
: 单进程,单线程程序,必现。
: 调用方式是:
: string dest;
: test(dest, str, 5);
这个str又是从哪个鬼地方冒出来的?
楼主你的思维表达能力堪忧啊。
:
:
: 这是什么问题呢,怎么理解?
: [upload=1][/upload]
: ※ 修改:·casbupt 于 May 29 17:10:28 2020 修改本文·[FROM: 114.247.88.*]
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 114.247.88.*]
--
修改:casbupt FROM 114.247.88.*
FROM 76.126.252.*