Cześć,
mam problem z algorytmem wstawiania elementu do tablicy na jej początku lub końcu. Wstawienie na początku działa, ale jest zrobione metodą, która w pewnych warunkach daje nieoczekiwane efekty. Wstawienie na końcu działa dla 2 liczb, przy trzeciej pojawia się błąd pamięci. Bardzo proszę o pomoc w zalezieniu błędu.
void nowy_poczatek(int wartosc)
{
if (rozm == 0)
{
rozm++;
tab = new int[rozm];
tab [0] = wartosc;
}
else
{
int *temp = new int [rozm];
for (int i=0; i<rozm; i++)
temp[i] = tab[i];
rozm++;
tab = new int[rozm];
tab[0] = wartosc;
for (int i=0; i<rozm; i++)
tab[i+1]=temp[i];
delete []temp;
}
}
void nowy_koniec(int wartosc)
{
if (rozm == 0)
{
rozm++;
tab = new int[rozm];
tab [0] = wartosc;
}
else
{
int *tmp=new int[rozm];
memcpy(tmp,tab,rozm*sizeof(int));
delete[] tab;
tab=tmp;
tab[rozm++]=wartosc;
}
}