aurel Opublikowano 4 Stycznia 2007 Zgłoś Opublikowano 4 Stycznia 2007 hum. jak to zrobić, żeby użytkownik mógł sam podać wielkość tablicy...? bardzo mile widziany przykład... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 4 Stycznia 2007 Zgłoś Opublikowano 4 Stycznia 2007 (edytowane) Google sie popsuło...? http://aragorn.pb.bialystok.pl/~mirkowsk/PO/prac2.html http://www.elektroda.pl/rtvforum/topic411378.html Edytowane 4 Stycznia 2007 przez ULLISSES Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Prog Opublikowano 4 Stycznia 2007 Zgłoś Opublikowano 4 Stycznia 2007 Przepraszam za OT, ale sam sobie napisałeś w tytule tematu. A, żeby nie siać OT to napiszę, żebyś poszukał sobie coś o operatorach new i delete, ewentualnie calloc, malloc itd. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 5 Stycznia 2007 Zgłoś Opublikowano 5 Stycznia 2007 (edytowane) jeśli to nie wymóg akademicki.. to proponuję przyjrzeć się STL vector... Unikniesz w ten sposób masy problemów a do tego będziesz programować na normalnym poziomie :). Dziś mało kto bawi się w tablice dynamiczne - zazwyczaj chyba tylko studenci :). Pomijam specyficzne zastosowania takich tablic gdy są lepsze wydajnościowo od vectorów... Na ogół jendak stosuje się vectory STLowe lub microsoftowe... :) no dobra mały przykład i porównanie... :) int wielkosc_tablicy = 10;int* tablica_dynamiczna = new int[wielkosc_tablicy * sizeof(int)];if( NULL==tablica_dynamiczna ) return BLAD_przydzielania_pamieci;for(int i=0; i<wielkosc_tablicy; ++i) tablica_dynamiczna[i] = i;// tu kod programudelete [] tablica_dynamiczna; // usuniecie tablicy KONIECZNE zeby nie bylo wyciekow pamieci // dodam ze to najczesciej jest niezauwaazane do czasu az cały program sie sypie i wersja nowoczesna... :) int wielkosc_tablicy = 10;vector<int> tablica_dynamiczna;for(int i=0; i<wielkosc_tablicy; ++i) tablica_dynamiczna.push_back(i);// tu kod programu wsio... jak widać drugi kod znacznie prostszy, a zarazem bezpieczny. Jako że vector jest tzw szablonem, do tego jest klasą to ma kilka ciekawych mozliwosci, lepszych niz tablica. Po pierwsze to ma zmienny rozmiar.. przydzielaniem pamięci zajmuje się klasa vector a Ciebie w ogóle to nei interesuje jak ona to robi.. Po prostu wrzucasz sobie elementy do vectora i już... Odczyt moze być jak w zwykłej tablicy, kilka przykładów poniżej... cout<<tablica_dynamiczna[4]; // dostęp normalnie jak w tablicycout<<tablica_dynamiczna.at(4); // lub z kontrolą indeksu.. aby nie wyskoczyć poza ilosc elementów w tablicy Jeśli po ustaleniu wielkosci tablicy zechcesz zmienic jej wielkosc to w przypadku zwykłej tablicy musisz realokowac pamiec... zrobic nowa tablice wieksza i tamtą starą skopiować i usunac... czyli kupa miejsc gdzie mozna zrobić błąd.. W przypadku wektorów po prostu wstawiasz nowe elementy... Mozesz tez wstawiac je do srodka, na początku, usuwac, czyscic wsystkie... wszystko co potrzeba :) Edytowane 5 Stycznia 2007 przez PelzaK Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...