复制内存中的数据

时间:2017-01-15 16:12:39

标签: c++ qt

我有一个抽象类NumericalObject和它的一些非抽象子类。然后我有一个Product类,它是QList的子类。现在我想定义两个产品的乘法,它们应该获取两个乘积的内容(指向数据,而不是指针),在内存中创建它的副本,并用指向复制数据的指针填充结果。我尝试使用malloc和memcpy,但复制的数据不正确:

friend Product operator *(Product a, Product b)
{
    Product c;
    for (int i=0; i<a.size(); i++){
        NumericalObject* p=(NumericalObject*) malloc(sizeof(*a.at(i)));
        memcpy(p,a.at(i),sizeof(*a.at(i)));
        c.append(p);
    }
    for (int i=0; i<b.size(); i++){
        NumericalObject* p=(NumericalObject*) malloc(sizeof(*b.at(i)));
        memcpy(p,b.at(i),sizeof(*b.at(i)));
        c.append(p);
    }
    return c;
}

0 个答案:

没有答案