Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dynamiczne obiekty/struktury - Po co?

Ostatnio zmodyfikowano 2013-03-10 11:28
Autor Wiadomość
ison
» 2013-03-09 17:01:57
C/C++
string * ptr = new string;
ptr = "ciag_znakow"; //to tak dla picu ;p
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

C/C++
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ć
P-77984
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:

C/C++
string zmienna;

delete & zmienna;

To nie zadziala, wydaje mi sie ze rownie dobrze powinno dzialac prawda ?
P-77985
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ą.
P-77991
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:

C/C++
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:

C/C++
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
P-78013
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
P-78042
1 « 2 »
Poprzednia strona Strona 2 z 2