Witam,
Jak w temacie. Musze zwiększać rozmiar tablicy dynamicznej, Niestety niemoge użyć ani wektora ani listy. Mam do dyspozycji tylko iostream... Wiem ze jako tako nieda sie zwiekszyc rozmiaru tablicy dynamicznej, ale co gdyby usunac stara tablice i w jej miejsce dac nowa? Mam wiec taki kod pogladowy :
#include <iostream>
void zwieksz(int *tab, int &tab_size);
int main()
{
int tab_size = 1;
int *tab = new int [tab_size];
for (int i = 1; i < 10; i++)
{
zwieksz(tab,tab_size);
std::cout<< "udalo sie " << i << "raz \n";
}
}
void zwieksz(int *tab, int &tab_size)
{
delete []tab;
tab_size++;
tab = new int [tab_size];
}
Niestety przechodzi tylko 6 razy, potem dostaje
*** glibc detected *** ./test_dynamiczna: double free or corruption (fasttop): 0x000000000091a010 ***
Z tego co sie doczytalem próbuje zwolnic coś co już zostalo usunięte ze sterty. Bede wdzieczny za jakąkolwiek pomoc w rozwiązaniu tego problemu.