簡體   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