Hirdetés
- Brogyi: CTEK akkumulátor töltő és másolatai
- Luck Dragon: Asszociációs játék. :)
- Lalikiraly: Astra kalandok @ Negyedik rész
- Lalikiraly: Kaáli Autó-Motor Múzeum
- ldave: New Game Blitz - 2025
- gban: Ingyen kellene, de tegnapra
- 8th: A NOB legalizálja a doppingot?
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Ú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!
- Óra topik
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Kormányok / autós szimulátorok topikja
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- A fociról könnyedén, egy baráti társaságban
- Azonnali alaplapos kérdések órája
- OTP Bank topic
- Mibe tegyem a megtakarításaimat?
- Milyen TV-t vegyek?
- ASZTALI GÉP / ALKATRÉSZ beárazás
- További aktív témák...
- iPhone 15 Pro MAX 256 GB, fekete, hivatalos garancia, 92% akku, tökéletes állapotban!
- újszerű iPhone 16 Pro Max 256GB natural titanium natúr titán független Apple garancia
- Precision 5560 15.6" FHD+ IPS i7-11850H RTX A2000 32GB 512GB NVMe ujjlolv IR kam gar
- 6-7 gen i5 T procik
- i5 12500/ RTX3060 12GB/ 32GB DDR4 alapú konfig/ garancia/ ingyen foxpost
- Dell Precision 7920 Tower Dual Xeon Gold 6132 (28C/56T) 128GB DDR4 2666MHz Workstation
- Dell Latitude 7410 karbon i7 10610U, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RAM RX 9070 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! ASUS TUF A17 FA707NV notebook - R7 7735HS 16GB DDR5 1TB SSD nVidia RTX 4060 8GB WIN11
- iKing - Apple iPhone 15 Pro Natural Titanium ProMotion 120 Hz, A17 Pro, USB-C 128 GB
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

