- One mobilszolgáltatások
- Google Pixel topik
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- Apple iPhone 16 Pro - rutinvizsga
- Samsung Galaxy S23 Ultra - non plus ultra
- Fotók, videók mobillal
- Samsung Galaxy S10 és S10+ duplateszt
- Két nap múlva itt a Xiaomi 17, van egy pár hivatalos fotó is róla
- Yettel topik
- Samsung Galaxy S21 FE 5G - utóirat
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
TheProb #4387 üzenetére
Az előző álláspontomat szem előtt tartva azért csak kifejtem egy kicsit.
Az alapprobléma az, hogy C-ben és más alacsonyabb szintű nyelveken a memóriakezelést tudatosan kell csinálni, mert nincs az ember alatt védőháló. Mindig tisztában kell lenned azzal, hogy egy adott változó, tömb, karaterlánc hol jön létre, és mikor, ki által fog megsemmisülni. Olyan meg soha nincs, hogy a semmiből memória fakad és pont azt csinálja amit szeretnél.
A mutatott kódodban a romai változódat úgy deklaráltad, hogy egy 20 karakteres tömb, ami a függvényen belül él csak, amint véget ér, felszabadul, te meg nem férhetsz hozzá többet. Ez a sorsa mindennek, ami a stacken jön létre. A befoglaló függvény végén kaputt.
Ilyen minden lokális változó függvényen belül, a függvényeknek átadott paraméterek, az egymás után láncolt függvényhívások köztes eredményei, stb.
Memóriafoglalás tekintetében még két lehetőséged van: a magyar oktatásban "dinamikus memóriának" csúfolt heap; illetve nagyon leegyszerűsítve a "globális változók", a static terület. Utóbbinak inkább ne játssz a gondolatával se.
A programodat azon a két módon lehet megjavítani, amit az előbb is írtam:
1) vagy behozod a heapkezelést és az eredményt oda mented (malloc/free);
2) vagy egy olyan függvényt írsz, mint például az snprintf: a hívó fél gondoskodik arról, hogy legyen hova tenni az eredményt. Javaslom, hogy nézd meg annak a függvénynek a leírását.Ez utóbbi azért különösen jó, mert maga a rómaira átalakító függvényednek nem kell törődnie a memóriakezeléssel egyáltalán. Nem érdekli, hogy a hívója hol foglalt memóriát (stack/heap/static), csak az átalakítással kell törődnie. Nem az ő felelőssége.
Az intes részre nem tudok válaszolni, mert nem sikerült értelmeznem a kérdést.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- One mobilszolgáltatások
- Energiaital topic
- Xbox Series X|S
- Lakáshitel, lakásvásárlás
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Futás, futópályák
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Google Pixel topik
- Kerékpárosok, bringások ide!
- További aktív témák...
- iPhone 15 Pro max 256GB gyári független kiváló akku
- IPhone 15 Pro 512GB gyári független 2026.12.10 iCentre jótállás
- DELL Universal Dock UD22
- GIGABYTE RTX 5070 Ti 16GB GDDR7 EAGLE OC SFF - Új, 3 év garancia - Eladó!
- Bomba ár! Acer Nitro V - i5-6300HQ I 8GB I 128SSD + 1TB I GTX960 4G I 15,6" FHD I Cam I W10 I Gari!
- GYÖNYÖRŰ iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3425, 94% Akkumulátor
- Playstation 4 Pro 1 TB + kontroller 6 hó garancia, számlával!
- AKCIÓ! Apple Macbook Pro 16" 2019 i9 9980HK 64GB DDR4 512GB SSD Radeon Pro 5500M garanciával
- Microsoft Surface Laptop 5 13.5" i5-1245U 16GB 256GB 1év garancia
- BESZÁMÍTÁS! Apple iPhone 16 Pro MAX 256GB okostelefon garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest