我需要保存数据包状态一段时间.所以我读取了表示为unsigned char*的数据包数据,而不是用这个数据创建一个记录,并将记录保存在列表中一段时间.
这将是更好的方式将记录中的数据包表示为char*或char [].
如何将读取数据(unsigned char )复制到两个选项:unsigned char []和unsigned char*
我需要复制数据,因为每次我读取数据包时都会被重新加入相同的char*,所以当我保存一段时间后我需要先复制数据
Pra*_*ian 10
如果分组数据是二进制的,我宁愿使用std::vector存储数据而不是C strXXX函数之一,以避免数据流中存在潜在的NULL字符的问题.大多数strXXX函数都会查找NULL字符并截断它们的操作.由于数据不是字符串,我也避免std::string执行此任务.
std::vector<unsigned char> v( buf, buf + datalen );
Run Code Online (Sandbox Code Playgroud)
向量构造函数将复制所有数据buf[0],buf[datalen - 1]并在向量超出范围时释放内存.您可以使用v.data()或获取指向底层缓冲区的指针&v[0].