C-ben és C++-ban miért vagy mikor jó pointereket használni sima változók, referenciák vagy adattagok helyett?










c-ben nem hiszem hogy létezik weak pointer, ha mégis, akkor is erősforrásigényesebb, ami c programoknál néha gond lehet. C++ban is nem alap nyelvi elem, be kell include-olni, és abban sem vagyok biztos, hogy az ISO c++ szabványban benne van, és nem későbbi-e. Emellett a használata is macerásabb.
Egyébként meg egyszerűen akkor használjuk, ha az objektumot/változót az adott függvényen kívül akarjuk használni. Ebben az esetben dereferálás után hozzáfér akinek átadtuk.
"ha az objektumot/változót az adott függvényen kívül akarjuk használni"
Tehát definiálunk egy pointert egy függvényben, feltöltjük valamilyen adattal és a címét adjuk vissza?
Ez effektíve olyan, mintha egy globális változó élettartamát szűkítenénk le?





"Tehát definiálunk egy pointert egy függvényben, feltöltjük valamilyen adattal és a címét adjuk vissza?"
Igen, ezt jelenti.
Nem, nem sok köze van a globális változókhoz, a globális változók definiáláskor alapértelmezett 0 értéket kapnak, és más memóriaterületen vannak. Ezen felül a globális változót mindenki látja, amit átadsz pointerrel, azt meg csak aki megkapja.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!