- Motorola Edge 50 Neo - az egyensúly gyengesége
- Nem lesz iPhone 19
- Akciófigyelő: Kedvezményekkel nyílt új Xiaomi Partner üzlet a Westendben
- iPhone topik
- A legolcsóbb és a legdrágább új iPhone fogy a legjobban
- Fotók, videók mobillal
- EarFun Air Pro 4 - a cél a csúcs
- Apple Watch
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S25 Edge - a tegnap határán
Ú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!
- BestBuy topik
- Bloodborne (PS4)
- Luck Dragon: Asszociációs játék. :)
- Óra topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Hálózati / IP kamera
- Milyen légkondit a lakásba?
- Nem lesz iPhone 19
- Akciófigyelő: Kedvezményekkel nyílt új Xiaomi Partner üzlet a Westendben
- Már nagyon közel van az AI szerverekbe szánt SOCAMM2 szabvány véglegesítése
- További aktív témák...
- Nintendo Switch V2 konzol csomag, Pro Controllerrel, Hori Split Paddel, szép állapotban + 2 Zelda
- Új - Bontatlan - Apple MacBook Air 13" M4 10/10 / 16GB / 512GB SSD - Midnight
- Grundig Fine Art-M hifi
- 10.gen PC // i5 10400F / RTX 2060 6GB / 16GB RAM / SSD+HDD //
- Ryezn PC // Ryzen 5 4500 / RTX 2060 6GB / 32GB DDR4 / 256GB SSD + 1TB HDD //
- TOP PC konfig /Ryzen 7 9800X3D, 32GB DDR5 RAM, 1TB SSD/ akciós áron eladó! BeszámítOK!
- iPhone 12 Pro 128GB Pacific Blue - 1 ÉV GARANCIA - Kártyafüggetlen, MS3259,100% Akkumulátor
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3316
- 145 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4090 (ELKELT)
- GYÖNYÖRŰ iPhone 11 Pro Max 64GB Midnight Green -1 ÉV GARANCIA -Kártyafüggetlen, MS3253,100% Akkumulá
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő



