Dynamiczne obiekty/struktury - Po co?
Ostatnio zmodyfikowano 2013-03-10 11:28
ison |
» 2013-03-09 17:01:57 string * ptr = new string; ptr = "ciag_znakow";
|
zapewne chciałeś wyłuskać wartość * ptr = "ciag_znakow"; To czy to usuwa obiekt na który wskazuje 'ptr' czy też sam wskaźnik? |
usuwa obiekt na który wskazuje 'ptr', sam wskaźnik nie był przecież alokowany dynamicznie string * ptr = new string; ptr = "ciag_znakow"; delete ptr; ptr = new string; ptr = "nowy_ciag_znakow"; Wydaje mi się że nie ale zawsze się można zapytać :) |
pomijając fakt, że raczej chodziło ci o *ptr = "ciag_znakow" to możesz tak zrobić |
|
Nowicjusz |
» 2013-03-09 17:13:47 Przepraszam ze sie wtracam @ison napsiales usuwa obiekt(na pewno masz racje pewnie ja tego nie rozumiem), to dlaczego jak napisze: string zmienna;
delete & zmienna;
To nie zadziala, wydaje mi sie ze rownie dobrze powinno dzialac prawda ? |
|
ison |
» 2013-03-09 17:39:26 Obiekty alokowane na stosie są automatycznie usuwane po wyjściu z ich scope'a, nie musisz się przejmować ich dealokacją. |
|
crash |
» 2013-03-09 20:09:03 Nowicjusz@ nie zadziała delete dlatego, że służy on do deletowania zmiennych, przy których stoi gwiazdka :) Tak to sobie zapamiętaj. Jeszcze jedna rzecz przy wskaźnikach. Dev-C++ na coś takiego pozwoli: int rozmiar; cin >> rozmiar; int tablica[ rozmiar ];
Kompletnie niepoprawny schemat. Jeśli zmienne tworzone są statycznie, tzn.: int tablica[ liczba ] to zmienna liczba musi być znana w trakcie pisania programu. Jeśli rozmiaru generalnie na tym etapie nie zna się, bo może on podczas działania programu być przeróżny, do tego celu używa się wskaźników: int * tablica; ... tablica = new int[ rozmiar ];
Określanie ilości pamięci dla tablicy statycznie - w trakcie pisania programu Określenie ilości pamięci dla tablicy dynamicznie - w momencie gdy program działa i sam musi ustalić rozmiar danej tablicy. PS: wskaźników używa się nie tylko do tablic |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2013-03-10 11:28:12 Ison dzięki, faktycznie chodziło mi o *ptr = "ciag_znakow". Tak z zapędzenia zapomniałem gwiazdeczki :) Zamykam |
|
1 « 2 » |