Witam mam problem a usuwaniem danego elementu w tablicy dla podwójnego wskaźnika.Widzi może ktoś ten błąd?
Z góry dziękuje za pomoc.
void usun(Pracownicy** &tab, size_t &tab_size, size_t ktory)
{
if (ktory >= tab_size) // obie zmienne powinny być typu size_t
{
cout << "Nie ma pracownika o takim numerze\n";
return;
}
else
{
if (tab_size == 1)
{
free(tab[0]);
free(tab);
tab = nullptr;
}
else
{
Pracownicy **new_tab = (Pracownicy**)malloc((tab_size -1) * sizeof(Pracownicy*));
//Pracownicy **new_tab = new Pracownicy*[tab_size];
for (size_t i = 0, j = 0; i < tab_size; ++i)
{
if (ktory != i)
{
new_tab[j++] = tab[i];
}
else free(tab[i]);
}
free(tab);
tab = new_tab;
--tab_size;
}
}
}