- Xiaomi 17 Ultra - jó az optikája
- Google Pixel topik
- Maradt 46 mm a Xiaomi Watch S5, de nőtt a kijelző
- Motorola Moto G06 Power – nagyfater új zakót vett
- Redmi Note 9 Pro [joyeuse]
- MWC 2026: Műholdakkal tömné ki a Telekom a lefedettségi réseket
- One mobilszolgáltatások
- Samsung Galaxy A36 5G - a középső testvér
- Apple iPhone Air - almacsutka
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
Ú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
- Xiaomi 17 Ultra - jó az optikája
- exHWSW - Értünk mindenhez IS
- OpenWRT topic
- PlayStation 5
- Google Pixel topik
- Maradt 46 mm a Xiaomi Watch S5, de nőtt a kijelző
- Diablo IV
- Plazma TV topic
- Nagyrobogósok baráti topikja
- A tajvani chipgyártóknak is beteszi a kaput a Hormuzi-szoros lezárása
- További aktív témák...
- Lenovo ThinkPad T14 Gen 1 i5-10210 / 16GB RAM/ 256GB NVMe SSD világítós EU bill, kiváló állapotban
- vizes GAMER PC - RYZEN 5 7600X / 32GB DDR5 / RTX 5070 12GB
- HP EliteBook 840 G7 i5-10210U / 16GB RAM / 256GB SSD Szép állapot, EU bill, gyári töltő
- A KINCS ! Új HP EliteBook 860 G10 Profi Fémházas Laptop -50% 16" i7-1355U 32/1TB FHD+ IPS MATT
- Dobozos DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -30% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- Új HP 15 Victus FHD IPS 144Hz i7-13620H 4.9Ghz 10mag 16GB 1TB SSD Nvidia RTX 5060 8GB Win11 Garancia
- iKing.Hu - Használt, karcmentes Google Pixel 9 Pro Fold Obsidian színben, 256 GB tárhellyel, 6 hónap
- LG 27GX704A-B - 27" OLED evo / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- HP ProBook 650 G5 - i5 8265U, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
- iPhone 16 Pro Max 156GB Fekete Titán - 27% ÁFA (0397)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


