Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
balaz.marek94:1.4.2016 16:03

Zdravím, s c++ som začal pred nedávnom a neviem si dať rady, čo spraviť so smerníkom v deštruktore? Respektíve takto, mám smerník na string a smerník na objekt, ale neviem ako ich uvoľniť z pamäte.
Moje atribúty sú:

string *nazov;
Adresa *adresa;

Našiel som zopár možností, a neviem ktoré z nich je korektné.

delete nazov;
delete adresa;

alebo

nazov = nullptr;
adresa = nullptr;

Vďaka za odpoveď :)

 
Odpovědět
1.4.2016 16:03
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na balaz.marek94
Martin Dráb:1.4.2016 17:09

Pro čisté ukazatele je správně toto:

delete nazov;
delete adresa;
Nahoru Odpovědět
1.4.2016 17:09
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Martin Dráb
balaz.marek94:1.4.2016 22:11

Vďaka! ale ja som to myslel všeobecne, aj s hodnotou, na ktorú smerník ukazuje :)

 
Nahoru Odpovědět
1.4.2016 22:11
Avatar
Pjanus
Člen
Avatar
Odpovídá na balaz.marek94
Pjanus:2.4.2016 0:14

A to přesně delete dělá maže pouze hodnotu, ukazatel jako takový smazat vlastně nejde dokud nesmažeš objekt ve kterém je ukazatel samotný obsažen.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
2.4.2016 0:14
Avatar
Odpovídá na Pjanus
Libor Šimo (libcosenior):2.4.2016 9:04

free(pointer)
sa v c++ nepouziva?

Nahoru Odpovědět
2.4.2016 9:04
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
tomisoka
Tvůrce
Avatar
Odpovídá na Libor Šimo (libcosenior)
tomisoka:2.4.2016 10:06

Záleží dle alokace. Pokud použiješ C++ způsob 'new', tak musíš dealokovat pomocí 'delete'. Pokud použiješ C způsob 'malloc', tak musíš dealokovat pomocí 'free'.

Editováno 2.4.2016 10:06
 
Nahoru Odpovědět
2.4.2016 10:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.