- Milyen TV-t vegyek?
- Nem indul és mi a baja a gépemnek topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen egeret válasszak?
- Jó lenne, ha ez a monitor megtalálná az útját Európába
- Házimozi belépő szinten
- Kötelező frissítésnek számít a Microsoft legújabb csomagja a Windows 11-hez
- OLED monitor topic
- Alaposan megdrágultak az ASUS Zenbookjai
- Hobby elektronika
Ú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
- Milyen routert?
- Renault, Dacia topik
- Milyen TV-t vegyek?
- Netfone
- Nem indul és mi a baja a gépemnek topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- AliExpress tapasztalatok
- Milyen egeret válasszak?
- Jó lenne, ha ez a monitor megtalálná az útját Európába
- Redmi Note 12 Pro - nem tolták túl
- További aktív témák...
- Eladó 9800X3D/RX 9070 XT 16GB/32 GB RAM
- GARANCIÁLIS RTX 5060 ACER NITRO GAMER LAPTOP - i7 13620h, RTX 5060
- 27" AOC Q27G3XMN Gaming MiniLED "1100Nit" (Garanciás)
- LOQ 15IRH8 15.6" FHD IPS i5-12450H RTX 4060 16GB 512GB NVMe magyar vbill gar
- 32 Gb Gb G.skill Trident Z Royal Silver 3200 Mhz CL14 Beszámitok! (16 Gb-ra bontom igény szerint)
- LG 27US550-W - 27" IPS / 3840x2160 4K / 60Hz 5ms / HDR10 / Forgatható / sRGB 99%
- Dell Latitude 5410 - 14", Core i5 10210U, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
- Xbox Elite Series 2 Core kontroller 3 hó garancia, számlával!
- Telefon felvásárlás!! Samsung Galaxy A50/Samsung Galaxy A51/Samsung Galaxy A52/Samsung Galaxy A53
- Honor 200 Pro 512GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

