Új hozzászólás Aktív témák
-
alapz@j
tag
válasz
buherton
#4707
üzenetére
Van egy string könyvtáram, ahol a String típus egy struktúra, amiben egy char* változó mutat a tényleges karaktersorozatra. Hogy a felhasználónak ne kelljen még plusz a memóriakezeléssel is bajlódnia, a sztringek mutable-ként működnek, úgy, hogy a függvények új memóriaterületet allokálnak az eredménynek, a régi területet pedig felszabadítják free-vel Ez ugye a felhasználó számára nem látszik, mert ő mindig ugyanazt a String változót látja. A konstruktor függvény első verziója egyszerűen felvette a felhasználó által megadott char* értéket. Ez viszont nem jó, mert ha a stack-en van a karaktersorozat (és nem static), akkor ugye az megsemmisül, ha char* x = "x" formában definiált volt, akkor az r/o memóriaterületen van és az első free-nél kiakad a rendszer, stb. Úgyhogy a jelenlegi konstruktor duplikálja a karaktersort a heap-re, ami csak annyiban rossz, hogy ha már eredetileg is ott volt, akkor kétszer annyi memóriát használ a program. Az lenne a legelegánsabb megoldás, ha a konstruktor érzékelné, hogy a paraméter a stack-re, r/o területre vagy a heap-re mutat és ennek megfelelő memóriafoglalási stratégiát választana.
Ú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!
- Egyéni arckép 2. lépés: ARCKÉPSZERKESZTŐ
- Milyen nyomtatót vegyek?
- Milyen okostelefont vegyek? OFF topik
- Formula-1
- Witcher topik
- Kingdom Come: Deliverance 2 fordító: "Kirúgtak, és AI-val pótolnak”
- Luck Dragon: Óraátállítás
- OLED monitor topic
- Kormányok / autós szimulátorok topikja
- Linux kezdőknek
- További aktív témák...
- Alienware 17r4 olvass
- HIBÁTLAN iPhone SE 2020 64GB Black-1 ÉV GARANCIA - Kártyafüggetlen, MS4001
- 27% - ASUS ROG Swift PG27AQDM OLED Monitor! 2560x1440 / 240Hz / 0.03ms /
- AKCIÓ! HP Elitedesk 800 G2 SFF brand - i7 6700 16GB DDR4 250GB SSD 500GB HDD GTX 1050Ti 4GB W10
- Keresünk Galaxy S23/S23+/S23 Ultra/S23 FE
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

