在我正在编写的一个函数中,我试图返回一个指向无符号字符向量的指针。相关代码如下。
std::vector<unsigned char> *ret = new std::vector<unsigned char>(buffSize,'0');
//Due to suggestions...
int n = recvfrom(fd_, ret, buffSize, &recvAddress, &sockSize);
//Forgot to include this in the original
ret->resize(n);
// display chars somehow just for testing
for(std::vector<unsigned char>::iterator it=ret->begin(); it<ret->end();it++)
{
std::cout<<*it;
}
std::cout<<std::endl;
...
return ret;
当我在valgrind中运行它时,我得到了关于recvfrom中的缓冲区是如何指向未初始化字节的错误。自从我把它换成一个无符号字符数组后,我已经把它的范围缩小到了向量,一切都很好。有什么建议吗?
编辑1:修复了一些代码,我在工作中遇到的一个问题是从内存/笔记中完成的。我开始使用valgrind的原因是我在那个地方遇到了分段错误。我会仔细检查一下我明天要做什么。
https://stackoverflow.com/questions/4589917
复制相似问题