- Fejhallgató erősítő és DAC topik
- HDD probléma (nem adatmentés)
- Gaming notebook topik
- Áramkiegyenlítőt fejlesztett a modern GeForce-okhoz az Aqua Computer
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Nem akármilyen új GeForce jöhet idén
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen széket vegyek?
- OLED monitor topic
- Kormányok / autós szimulátorok topikja
Ú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!
- Fejhallgató erősítő és DAC topik
- HDD probléma (nem adatmentés)
- Wuthering Waves
- Arc Raiders
- Mobil flották
- Futás, futópályák
- Gaming notebook topik
- Gitáros topic
- Áramkiegyenlítőt fejlesztett a modern GeForce-okhoz az Aqua Computer
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Üzletből, garanciával, Új Lenovo ThinkPad X1 Carbon Gen 12 Ultra 7 155u/32GBRAM/1TB SSD/OLED kijelző
- ÚJ BONTATLAN Apple Macbook Air 15,3 M4 10C CPU/10C GPU/16GB/256GB - Égkék - HUN - mc7a4mg/a 3 év gar
- iPhone 15 Pro 512GB Natural Titanium Makulátlan, garanciális, Apple Store vásárlás
- 6 HÓ GAR!! Xiaomi Mi Note 10 Lite 6GB/64GB
- HTC One M8 801n 32GB retró!
- HP Elite x2 1012 G1,12",FHD+ ,m5-6Y54,8GB,256GB,WIN10, LTE
- iKing.Hu - OnePlus 15 12/256GB használt, karcmentes 6 hónap garancia
- Konzol felvásárlás!! Xbox Series S, Xbox Series X
- BESZÁMÍTÁS! ASUS H110M i5 6400 8GB DDR4 120GB SSD 500GB HDD GTX 1050 Ti 4GB Zalman T3 Plus 650W
- HP ProDesk 600 G4 i3-8100 16GB 512GB 1 év garancia
Á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


