繁体   English   中英

C ++访问内存冲突

[英]C++ Access memory violation

尝试实例化时出现访问内存错误:

Ferma(long _id, int _supr, int _nrp, Produs *_produse) :idFerma(_id),suprafata(_supr),nrproduse(_nrp){
    for (int i = 0; i < this->nrproduse; i++)
        produse[i] = _produse[i];
    nrFerme++;
}

这是该类的构造函数; Visual Studio将我引导到重载operator =的第二行,这是导致错误的原因;

Produs &operator=(const Produs p){
    this->pret = p.pret;
    this->stoc = p.stoc;
    this->denumire = new char[strlen(p.denumire) + 1];
    strcpy(this->denumire, p.denumire);
    return *this;
} 

这是重载运算符=

Ferma f3(55, 1500, nr, prod);

我已经从文件中读取了prod数组,看起来还可以;顺便说一句,我知道我不应该使用char *,但这是我必须这样做的方式..因此,任何帮助都将不胜感激

您的赋值运算符进行复制

Produs &operator=(const Produs p){

在源实例中,您的副本构造函数是否正确实现?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM