Witam,
z programowaniem dopiero zaczynam swoje podboje więc proszę z góry nie krzyczeć ze coś zrobiłem źle bo wiem że tak jest :)
Mam problem z alokacja tablicy obiektów którą tworze dynamicznie (ilość obiektów jest zwiększana wraz z odczytem kolejnej danej z pliku) wszystko niby działa jak należy ale sa (jak to sie fachowo nazywa) wycieki pamięci :)
Oto co stworzyłem:
Produkt *produkty; //tablica produktow
int czytajProdukty() //czytanie produktow z pliku, jezeli blad zwraca 0 inaczej zwraca liczbe wczytanych produktow
{
int i = 0; // licznik produktow
...
Produkt *prod_temp; //tablica zapasowa produktow
prod_temp = new Produkt[i];
for (int j=1; j<i; ++j) //przepisuje stara tablice do nowej
{
prod_temp[j] = produkty[j];
}
produkty = prod_temp;
//delete [] prod_temp;
...
tutaj operacje na pliku
...
na koncu poproastu przypisuje wartosci do obiektu za pomoca funkcji
produkty[i].Ustaw(temp_nazwa, atoi(temp_ilosc), atof(temp_cena));
Problem jest w sumie cząstkowy bo program działa jak należny tylko że jest jedno ale, nie zawszem tzn czasami wszystko dziala jak nalezy a czasami wysypuje sie przy odczytaniu kolejnej danej.
Wiem ze sa tutaj ludzie którzy wiedza więcej ode mnie wiec prosze o sugestie, porady i ew rozwiazanie problemu...
PS.
Nie mogę tez zwolnic pamięci np z utworzonej tymczasowo tablicy, moze ktos powiedziec czemu?
Dodam również ze przy kompilacji nie ma żadnych błędów