Hirdetés
- Beköltözött a ChatGPT az Ulefone filléres órájába
- Kisebb kivágás, középen kamera: így nézhet ki az iPhone 18 Pro előlapja
- 100 wattos töltést és 27 wattos fordított töltést kap a Redmi Turbo 5 Max
- Másfél millió forintért már haza is vihető a Huawei aranyozott csúcsórája
- Gyártási gondok a BOE-nél: Samsung kaphatja az iPhone 17e kijelzőit is
- Hivatalos a OnePlus 13 startdátuma
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy A54 - türelemjáték
- Yettel topik
- Milyen okostelefont vegyek?
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Nemzetközi vizekre evezett a Realme GT 7 és GT 7T
- iPhone topik
- Vége lehet a OnePlusnak? Állítólag az Oppo bezárná a márkát
- Görögök buktatták le a Moto G67-et és a Moto G77-et
Ú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!
- Hivatalos a OnePlus 13 startdátuma
- LG LCD és LED TV-k
- Akciókamerák
- Szívós, szép és kitartó az új OnePlus óra
- Xbox tulajok OFF topicja
- Samsung Galaxy A54 - türelemjáték
- Nagyrobogósok baráti topikja
- Óra topik
- War Thunder - MMO Combat Game
- Milyen kompakt digitális fényképezőgépet?
- További aktív témák...
- iPhone 13 mini 128GB Green -1 ÉV GARANCIA -Kártyafüggetlen, MS3897
- Samsung Galaxy S21 FE / 6/128GB / Kártyafüggetlen / 12Hó Garancia
- LG 38WN95C - 38" Ívelt NANO IPS - 3840x1600 - 144hz 1ms - Nvidia G-Sync - AMD FreeSync - ThunderBolt
- BESZÁMÍTÁS! Asus TUF A16 2024 FA607NUG Gamer notebook - R7 7445HS 16GB DDR5 1TB SSD RTX 4050 6GB
- iPhone 14 Plus 96% (1év Garancia)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


