Witajcie , mam problem gdyż próbuje dodać nowy element do tablicy dynamicznej tym samym zmieniając jej rozmiar, próbowałem na wiele sposobów ten, który wydaje mi się najbardziej poprawny również nie działa. Tym sposobem jest utworzenie pomocniczego podwójnego wskaźnika i przypisanie do niego elementów , które są już utworzone, usunięcie wcześniejszej tablicy i stworzenie jej jeszcze raz o zwiększoną wartość i dodanie tam tego elementu. Ale coś chyba robię źle proszę was o pomoc bo już 4 h siedzę nad tym i dalej jest ten sam efekt.
Tutaj mój kod :
void Pracownik::add_worker(Pracownik **&dane,int ilosc)
{
//zmienne pomocnicze
int stawka;
int liczba_godzin;
//----------------------------------WCZYTYWANIE DANYCH O PRACOWNIKACH---------------------------------------
cout << " Imie: ";
cin >> pracownik->Imie;
cout << endl << " Nazwisko: ";
cin >> pracownik->Nazwisko;
cout << endl << " Nr pracownika: ";
cin >> pracownik->numer;
cout << endl << " Stawka za godzine: ";
cin >> stawka;
cout <<endl<< " Liczba godzin: ";
cin >> liczba_godzin;
if (ilosc == 1)
{
dane = new Pracownik *[ilosc];
for (int i = 0; i < ilosc; i++)
{
dane[i] = new Pracownik;
dane[i]->Imie = pracownik->Imie;
dane[i]->Nazwisko = pracownik->Nazwisko;
dane[i]->numer = pracownik->numer;
dane[i]->zarobek = pracownik->get(stawka, liczba_godzin);
}
}
else
{
Pracownik **pomoc;
pomoc = new Pracownik *[ilosc];
for (int i = 0; i < ilosc-1; i++)
{
pomoc[i] = dane[i];
}
for (int i = ilosc-1; i <ilosc; i++)
{
pomoc[i] = new Pracownik;
pomoc[i]->Imie = pracownik->Imie;
pomoc[i]->Nazwisko = pracownik->Nazwisko;
pomoc[i]->numer = pracownik->numer;
pomoc[i]->zarobek = pracownik->get(stawka, liczba_godzin);
}
for (int i = 0; i < ilosc-1; i++)
{
delete dane[i];
}
delete[] dane;
dane = new Pracownik*[ilosc];
for (int i = 0; i < ilosc; i++)
{
pomoc[i] = dane[i];
}
for (int i = 0; i < ilosc; i++)
{
delete pomoc[i];
}
delete[] pomoc;
}
licznik++;
}