我有一个数组char buffer[]
。我想要做的是将buffer
中的值从foundSecondComma+1
复制到foundSecondComma+1+dataLen
。
接下来,我想要创建对象Answer a
并使用buffer
的一部分向构造函数传递一些数据。
// here extracted buffer will be stored
char contentData[dataLen];
// extract data from buffer
copy(buffer + foundSecondComma+1, buffer+foundSecondComma+1+dataLen, contentData);
//create new object and push to list
Answer a(dataLen, header, contentData);
answers.push_back(a);
这是我的Answer
课程:
Answer::Answer(int dataLen, string header, char* content) {
this->dataLen = dataLen;
this->header = header;
this->content = new char[strlen(content)+1];
strcpy(this->content, content);
}
因此,某些原因a.content
存储的数据与buffer
的部分数据不同。这个简单的循环:
for(int i=0; i<v.dataLen; i++)
{
printf("buffer[%d]=%c a.content[%d]=%c\n", i, buffer[foundSecondComma+1+i], i, a.content[i]);
}
显示,值不一样。哪里弄错了?我正在使用g++
来编译程序。