我正在尝试使用以下方法将std::vector<char>
转换为字符串:
// Data has been received, update the buffer...
buffer = readBuffer.data();
buffer[bytesRead-1] = '\0';
我遇到的问题是,当我调试readBuffer时,得到的结果是"
"<A HREF="https://www.google.com/">here</A>."
,但是在reviewing buffer时,得到的结果是
'<A HREF="https://ww ²²²²▌▌╫$Ö►¬∟☺.google.com/">here</A>.'
。我是否漏掉了什么非常明显的东西?
vector
的第一个元素的指针(假设size!= 0
)。您可能没有显示出现错误的代码行。"reviewing"是什么意思?我假设您访问了buffer
,但是何时访问的?当您查看buffer
时,readBuffer
是否仍然存在? - Steve Jessopbuffer
指针的生命周期长于readBuffer
向量,这会导致它指向已释放的数据。在检查buffer
的内容时会导致垃圾出现。 - user4815162342