Mam pytanie.
Jak zwiększać rozmiar tablicy dynamicznej podczas działania programu?
C:
realloc()
Dajmy na to że mam coś takiego Typ *tablica = new Typ[5].
Jak za pomocą funkcji realloc zwiększyć ją dwa razy ?
Zależy od języka.... W C++ używając typu std::vector "samo się zwiększy" w C - kolega podał już rozwiązanie.
Mały Młot napisał(a):
Typ *tablica = new Typ[5].
- Nowa osobna tablica innego rozmiaru
new Typ[...]
- Skopiowanie do nowej potrzebnych wartości:
for()
- Usunięcie starej:
delete[]
- Podmiana wskaźnika.
Jak podmienić wskaznik ze starej tablicy na nową?
stary_wskaźnik=nowy_wskaźnik
Dlaczego to nie chce działac ?
Typ *zastepca = new Typ[5];
for(int i = 0;i<5;i++)
{
zastepca[i]=stary[i] ;
}
delete[] stary;
Typ *stary ;
stary = zastepca;
bo tworzysz ponownie zmienną stary?
Jakby ułożyć te linijki w odpowiedniej kolejności to było by prawie dobrze.
Jak inaczej podmienic wskazniki ?
Możesz mi ułożyć w odpowiedniej kolejności ? :)
int * wsk=new int[5];
//ustawianie
int * wsk_nowy=new int[15];
for (unsigned int i=0; i<5; i++)
{
wsk_nowy[i]=wsk[i];
}
delete[] wsk;
wsk=wsk_nowy;
to co ty robiłeś to podwójna deklaracja zmiennej, a to co miałeś zrobić to przepisać zawartość nowego wskaźnika do starego
Gdzieś jest błąd oprócz tego tego delete[] wsk;
Dziękuje bardzo jednak jest oki.(Specjalnie sie zarejesruje i Ci podziękuję :) )