Ozmium42 kérdése:
Láncolt listák felszabadítása C-ben? (bővebben a leírásban)
Figyelt kérdés
Ha van egy láncolt listám, aminek az elemei külön-külön is tartalmaznak láncolt listák elejére mutató pointereket az adatrészben, akkor ha egy ilyen elemet fel akarok szabadítani (free), akkor először az alacsonyabb rendű lista elemeit kell felszabadítgatni külön-külön, és utána magát az elemet?2017. júl. 25. 22:09
2/4 A kérdező kommentje:
Akkor bónusz kérdés: a struktúra adat részével mi történik felszabadításkor? Azt szintén külön fel kell szabadítani?
2017. júl. 26. 01:15
3/4 anonim válasza:
Ami egy struktúra/objektum által lefoglalt memóriaszegmensen van (tehát lényegében minden ami közvetlenül a struktúra eleme), azok automatikusan felszabadulnak az adott objektum megsemmisülésekor. Amire viszont pointer mutat, az más tészta, lévén csak maga a pointer tartozik az objektum alá, az általa mutatott értéknek külön memóriaszegmens van foglalva. Így ha nem szabadítod fela pointereken mutatott értékeket manuálisan, akkor a pointer automatikusan megsemmisül, de amire a pointer mutaott, az bentmarad a emóriában (és már elő sem nagyon tudod bányászni). Ebből következik, hogy ha pointerekkel, láncolt listákkal mókolsz, mindig szem előtt kell tartanod, hogy a pointerek által mutatott értékek előbb legyenek felszabadítva, mint maga a pointer.
4/4 A kérdező kommentje:
Nagyszerű :) Köszönöm.
2017. júl. 26. 01:32
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!