當我嘗試調用構造函數時出現運行時錯誤,並且我認爲我沒有正確執行內存刪除操作。這裏是我的construcor:堆棧變量''在C++中損壞
const int id_ferma;
int suprafata;
int nr_produse;
char* produse[];
Ferma(int id_ferma, int suprafata, int nr_produse, char* produse[]) :id_ferma(id_ferma){
this->suprafata = suprafata;
this->nr_produse = nr_produse;
for (int i = 0; i < nr_produse; i++){
this->produse[i] = new char[strlen(produse[i]) + 1];
strcpy(this->produse[i], produse[i]);
cout << produse[i] << endl;
}
}
這裏是我的析構函數:
~Ferma(){
for (int i = 0; i < nr_produse; i++){
if (this->produse[i] != NULL)
delete produse[i];
}
}
而且主:
int main(){
char* produse1[] = { "Lapte oaie", "Branza vaca", "Muschi de porc", "Oua de gaina" };
for (int i = 0; i < 4; i++){
cout << produse1[i];
}
Ferma f1(14, 1500, 4, produse1);
}
停止手動內存管理一勞永逸。 – SergeyA