Hirdetés
- Milyen okostelefont vegyek?
- Google Pixel topik
- Megtartotta Európában a 7500 mAh-t az Oppo
- Google Pixel 9 Pro XL - hét szűk esztendő
- Apple iPhone 17 Pro Max – fennsík
- Okosóra és okoskiegészítő topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Poco F7 – bajnokesélyes
- A piac legerősebb kameráját ígéri a Xiaomi 17 Ultra
- CES 2026: A Dreame első akciókamerája apró, szétszedhető, 8K-t is rögzít
Ú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
- Peugeot, Citroën topik
- Milyen okostelefont vegyek?
- Home server / házi szerver építése
- Robotporszívók
- Google Pixel topik
- Külföldi rendelések: boltok, fizetés, postázás
- BIOS topic
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Vezetékes FEJhallgatók
- További aktív témák...
- Alpenföhn Ben Nevis processzorhűtő
- Eladó konfig! I9-14900K 2TB SSD 32GB DDR5 RTX5070 12GB!
- Szép! Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i7-11850H 32/512 A3000 4GB /1,5 Millió/
- !AKCIÓ! GAMER PC Intel Core i9-10900X/ASUS ROG Strix X299-E Gaming/NVIDIA GeForce RTX 3080/32 GB RAM
- Rockrider Race 940 S
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- RTX 5090-es, 5080-as stb... GAMER laptopok + dokkolók + licencek
- Xbox Elite Series 2 kontroller 3 hó garancia, számlával!
- magyar billentyűzet - 162 - 163 - Lenovo LOQ (15ARP9) - AMD Ryzen 7 7435HS, RTX 4060
- ÚJ MacBook Pro 14" M4 PRO 24GB 512GB Space Black
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest


