Jak powiększyć rozmiar tablicy dynamicznej?

0

Oto moje zapytanie do ludzi którzy to wiedzą:

Jak w Builderze powiększyć rozmiar tablicy dynamicznej?
na górze Formy deklaruję ją:

int *dane=new int;

no a potem chce do niej wpisać ileś elementów, tylko nie wiem jak ją powiększać za każdym razem przy wpisaniu nowego elementu.
Dzięki za pomoc.

0

Nie potrzebowałem tego, ale sprubój z funckją realloc() (o ile pamiętam). Jeśli to nie wypali, zawsze możesz napisać tablicę, która będzie to robić.

0

sprubój

Ależ walnąłem byka :-) oczywiście winno być spróbuj. Przepraszam, ale jestem zmęczony.

1

eh kolejny.. ludzie, od tego LISTY (linked list) a nie dynamiczne tablice

0

najlepiej uzyc vector'a... sam ci automatycznie sie powieksza jesli dajesz wiecej jego elementow... a przy tym jesli sie chce mozna wsadzic jakis element w srodku vectora [w przeciwienstwie do listy] :)
pozdrawiam...

P.S.
Kontenery takie jak lista czy vector to naprawde fajna sprawa :) polecam

0

A ja dzisiaj mam dziwny humor i odpowiem, a nawet komentarze dodam (co mi się wyjątkowo rzadko zdarza):

String *tablica; //stworzenie wskażnika (późnej będzie to dynamiczne tablica)
int length=0;
//powyższe może być np. jako zmienne globalne...

String *buff = new String[length]; //tworzenie tablicy-buforu
for(int i=0; i<length; i++)
        buff[i]=tablica[i];  //przpisywanie tablicy na bufor
tablica = new String[length+1]; //'powiększanie' tablicy
for(int i=0; i<length; i++)
        tablica[i]=buff[i];  //przepisywanie bufora na tablice
tablica[length]=Edit1->Text; //wpisanie nowego elemnetu na tablice
delete []buff; //zwalnianie buforu
length++;

//poniższe może być w jakimś destruktorze, a na upartego nawet i w OnClose:)
delete []tablica; //zwalnianie tablicy;

PS> zrobiłem na tablicy String`ów, bo mi tak było wygodniej:) aby zmienić to na int pozamieniaj wszystkie String na int

0

Fajnie... Ale mozna zrobic jeszcze prościej malloc/realloc/free. Operatory new/delete wykluczają realloc.

0

a przy tym jesli sie chce mozna wsadzic jakis element w srodku vectora [w przeciwienstwie do listy]

a dlaczego niby do listy nie można wsadzić elementu do środka - (a jak niby powstają listy uporządkowane) ??

no chyba, że ty i ja nie myślimy o tych samych listach :-/

0

Operatory new/delete wykluczają realloc.

Nie jesli mowimy o win32 gdyz tam wszystkie funkcje zwiazane z pamiecia sa obslugiwane przez jednego menadzera VMM i wykonywane sa tak samo.

0

Operatory new/delete wykluczają realloc.

Nie jesli mowimy o win32 gdyz tam wszystkie funkcje zwiazane z pamiecia sa obslugiwane przez jednego menadzera VMM i wykonywane sa tak samo.

Snaj, muszę sobie kupić kapelusz, żeby Ci sie kłaniać. ;)

0

E tam od razu klaniac :-) wystarczy danine placic :d i bedzie GIT :d

0

E tam od razu klaniac :-) wystarczy danine placic :d i bedzie GIT :d

2,50 [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1