c++ - char 数组末尾的奇怪字符

标签 c++ arrays char smart-pointers

我想做的是从缓冲区数组中读取字符

std::vector<char> SmartIO::PeekChar(){
        int newlen= 0;
        while(buffer[ptrSeek] != 0){
            ptrSeek++;
            newlen++;
        }

        std::vector<char> temp(newlen);
        memcpy(temp.data(),&buffer[ptrSeek-newlen],newlen);
        ptrSeek = 0;
        return temp;
}

所以 temp.data()例如 methodtest‎‎‎‎««««««««î‏ 的返回而结果应该是 methodtest仅有的! 那么是什么导致了这些奇怪的字符?

最佳答案

您的缓冲区/字符数组不是以 null 结尾的。

您必须知道缓冲区的长度,否则它必须以 null 终止。

关于c++ - char 数组末尾的奇怪字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8938886/

相关文章:

C++:非本地类型提升

c++ - cuda 多重图像侵 eclipse 不起作用

Javascript 数组声明(可能误用了长度属性?)

c++ - 将 char 转换为 int '23' > 23

c++ - 如何获取 char 数组中元素的地址?

c++ - 在 OpenCV 中从 RGB 图像访问 channel 的更快方法?

php - 使用 PHP 循环后将数组附加到 JSON 输出

JavaScript:删除数组中的重复项

r - 字符串:提取想要的字符而不是删除不需要的字符

c++ - 为回文遍历网格