我正在从事一个必须传输序列化数据的项目。使用boost框架对数据进行序列化,然后存储到 stringstream 中,最后存储到 std::string 中。为了传输数据,数据(存储为 char*,给定!)和字符串的长度都被存储并且可以在目的地被提取。但是,在尝试提取数据时,我只得到空字符串。到目前为止我尝试过的方法是:
C[i]=*new std::string(content, getDataChunk(), content.getDataLength());
或者
C[i].append(content.getDataChunk(), content.getDataLength());
而 std::string *C=new std::string[K], i < K.
char* p = content.getDataChunk();
int l = content.getDataLength();
for (int j = 0; j < l; j++) {
C[i].insert(j, p[j], 1);
}
(这在一开始就引发了一个异常 - 我猜是因为 NULL 值!?)
显然, strcpy() 将不起作用,因为它使用 char* 作为再次以 NULL 结尾的目标......
你们中有人知道如何解决这个问题吗?我希望我不是在问每天都被问到的东西,但是在大量的答案中,很难消除这个机会;)
非常感谢您的任何提示-TIA!
干杯,亚历克斯