复制数组的一部分并传递给构造函数

时间:2018-01-24 19:41:15

标签: c++

我有一个数组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++来编译程序。

0 个答案:

没有答案