Új hozzászólás Aktív témák
-
Szirty
őstag
válasz
mcwizard
#4110
üzenetére
Üdv mcwizard!
A lokális változók a hívás végén nem törlődnek. A rendszer nem törli őket szándékosan. Ám a tartalmukat nem szabad figyelembe venni a blokkon belül azelőtt, hogy értéket adtunk volna neki.
Az ok rendkívül egyszerű: A lokális változók tartalmát más blokkok lokális változói felülírhatják ha használnak lokális változót illetve ha írják azokat. Így minden blokkban minden lokális változó tartalma lényegében határozatlan, memória szemét van benne. Egyszerűen azért, mert minden blokk ugyanazt a stack-et (memória területet) használja a saját lokális változói tárolására.
Ezért ha csak egyetlen egy blokkod van ami ír egy lokális változót, de a többi blokkban is létrehozol változókat amik így ugyanarra a címre kerülnek, ám azokat nem írod csak olvasod, akkor azt fogod tapasztalni hogy amikor az író blokk megváltoztatja a lokális változó értékét, akkor az a többi blokkban is megváltozik. Illetve az író blokk elején is az az érték van benne amit utoljára beleír.
Ha azonban nem "steril", hanem olyan programban vizsgálnád meg ugyanezt a jelenséget ahol különböző blokkok különböző célra intenzíven használnak különböző belső változókat a saját céljukra (a gyakorlatban minden program ilyen lényegében) akkor gyökeresen mást tapasztalnál.
Ha tehát arra hagyatkozol amit most tapasztaltál, annak vége igen nagy szívás lehet. Ezért nagyon fontos szabály, hogy egy blokkban lokális változót SOHA nem használunk fel azelőtt a blokk lefutásán belül, hogy annak értéket adtunk volna!
Új hozzászólás Aktív témák
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Anglia - élmények, tapasztalatok
- Milyen billentyűzetet vegyek?
- Autós topik látogatók beszélgetős, offolós topikja
- Kegyvesztett lehet a Radeon termékskála középső tagja
- Xbox Series X|S
- Igazi csúcskészülék lett a Poco F7 Ultra
- Hivatalosan is továbbmegy az EU-nál a Stop Killing Games kezdeményezés
- További aktív témák...
- Dell XPS 9380, 13,3" UHD/4K Touch, I7-8665U CPU, 16GB DDR4, 256GB-1TB SSD, W11, Számla, 1 év garanci
- Dell XPS 9380, 13,3" UHD/4K Touch, I7-8665U CPU, 16GB DDR4, 256GB-1TB SSD, Új akku, W11, Számla, 1 é
- Eladó Konfig I7 13700K 32GB DDR5 1TB SSD RX6800XT 16GB!
- Erős gamer / workstation PC RTX 5070 Ti, 64GB RAM, Ryzen 9
- Dell Latitude 7340 2-in-1 i5 13.gen, 16GB DDR5, 512GB SSD, QHD+ érintőkijelző, ÚJ ÁLLAPOT!
- Samsung Galaxy A14 64GB, Kártyafüggetlen, 1 Év Garanciával
- Xbox Elite Series 2 kontroller 3 hó garancia, számlával!
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Dell 14 Latitude 5430 FHD IPS i5-1245U vPro 4.4Ghz 10mag 16GB 512GB Intel Iris XE Win11 LTE Garancia
- Xiaomi 11 Lite 5G NE 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest

