Hirdetés
- Samsung Galaxy A52s 5G - jó S-tehetség
- Xiaomi 15T Pro - a téma nincs lezárva
- Android alkalmazások - szoftver kibeszélő topik
- Nincs Nothing AI szemüveg? Fogd meg a söröm!
- Poco F8 Ultra – forrónaci
- EarFun Tune Pro - a család mindent tudója?
- Telekom mobilszolgáltatások
- Honor 200 Pro - mobilportré
- Samsung Galaxy S26 - szeret, nem szeret
- Huawei Watch GT 6 és GT 6 Pro duplateszt
Ú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!
- Otthoni hálózat és internet megosztás
- BestBuy topik
- Samsung Galaxy Felhasználók OFF topicja
- Tarr Kft. kábeltv, internet, telefon
- Szomjan halunk, míg az AI dolgozik
- 50 év után kilőtt négy űrhajós a Holdra
- Vezeték nélküli fülhallgatók
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Milyen HASZNÁLT notebookot vegyek?
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- teljesen ÚJ Bontatlan Apple iPhone 17e 256GB ! 1Év nemzetközi APPLE GARANCiA
- ÚJ bontatlan Apple iPhone 17 Pro Max 256GB ! aktiválástól 1 ÉV nemzetközi APPLE GARANCiA
- Aorus RGB 16GB (2x8GB) DDR4 3333MHz GP-ARS16G33
- Genius SP-HF2800BT bluetooth hangszóró
- Kingston FURY Beast RGB 16GB (2x8GB) White RGB Special Edition DDR4 3600MHz CL17 KF436C17BWAK2/16
- BESZÁMÍTÁS! Lenovo Yoga Book 9 13IMU9 notebook - Ultra7 155U 32GB DDR5 1TB SSD Intel Graphics W11
- Lenovo LEGION 5 PRO Ultra 9 275HX 32GB RAM 2TB SSD RTX 5070 Ti 12GB 16" QHD+ OLED 3év Prémium GAR
- Bomba ár! Lenovo ThinkPad T470s - i5-6GEN I 8GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- iPhone 15 Plus 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4271
- PS4 FAT 1TB CUH-1216B 2 kontrollerrel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

