Új hozzászólás Aktív témák
-
Karma
félisten
válasz
Sk8erPeter
#1412
üzenetére
"A double *ujtomb; sorban tehát deklarálunk egy pointerváltozót ujtomb néven, aminek csak később foglaljuk le a szükséges memóriát, először még csak meghatározzuk, hogy "lesz ilyen"."
Igen. Bár ha nagyon szőrözni akarnék, ahogy egyszer már tettem, a megfogalmazás nem tökéletes: magát a pointert sikeresen definiáltuk, 4 byte-ot kapott a stacken (vagy globálisan), mint egy átlagos változó. De ezt most felejtsük el egy pillanatra, mert irreleváns.
"Amikor megtudtuk az eredeti tömb számunkra szükséges elemeit megszámolva, mekkora új tömbre van szükségünk, azután lefoglaltuk neki a számára szükséges memóriát. Ezután tömbként és egyben pointerként használtuk fel a későbbiekben, rakosgattunk bele elemeket, és itt ez most kicsit zavaros számomra, hogy akkor most melyik fogalmat is használjuk, ami helytálló. Mert tömbnek foglalunk helyet, de pointertömb...
"Nem, mi csak és kizárólag pointerként használtuk, nincs külön olyan, hogy "tömbként" használni. Ez a szép a C-ben (konkrét és ironikus értelemben is), hogy ilyen egyszerű
Mint írtam korábban, a p[n] subscript operátor az ekvivalens a *(p+n) művelettel.A pointertömb egy teljesen más fogalom. Pl. int **valami; egy int pointerre mutató pointer, amivel (hasonlóan a második példakódhoz) tömbök tömbjét lehet megvalósítani. Ugyanezt lehet fix méretben is: int valami[5][2];.
"Ráadásul - bocsi az értetlenkedésért, csak vannak ilyen homályos pontok - akkor a memóriafoglalással ezek szerint nem "méretezünk", hanem nem tudom, mit csinálunk
"A memóriafoglalással memóriát foglalunk

"És még egy pluszkérdés: a main()-ben free-vel felszabadítjuk a memóriát, de ekkor nem "szabadulunk meg" egyben az adatszerkezet már korábban eltárolt értékeitől is?"
Dehogynem. Amire meghívod a free-t, az felszabadul, az értékei érvénytelenné és elérhetetlenné válnak. (Legalábbis így kell bánni vele, ha nem akarsz bugzani.)
Fontos megjegyezni, hogy egy dinamikus pointertömbnél az alstruktúrákat egyesével fel kell szabadítani, a fordító nem fogja kibogozni!
Ú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!
- Luck Dragon: Asszociációs játék. :)
- Gyúrósok ide!
- A fociról könnyedén, egy baráti társaságban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Érik egy újabb balhé? Állítólag nem igazán fizeti alkalmazottait a Gunzilla
- sziku69: Szólánc.
- Napelem
- iPhone topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- 27% - ASUS ProArt GeForce RTX 4080 SUPER OC 16GB GDDR6X 256bit Videókártya !
- Sony Playstation 5 Pro 2TB/ 36 hónap garancia
- 27% - GIGABYTE RX 7800 XT GAMING OC 16G Videokártya
- ThinkPad P16 Gen1 16" FHD+ IPS i9-12950HX RTX A1000 32GB 512GB NVMe magyar vbill ujjlolv gar
- Vivobook X1504VA 15.6" FHD IPS i5-1334U 16GB 512GB NVMe ujjolv gar
- Motorola Edge 50 Neo 256GB,Újszerű,Dobozaval,12 hónap garanciával
- HP EliteBook 840 G6, G5 14" i5, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
- Apple iPhone 15 128 GB Black 1 év Garancia Beszámítás Házhozszállítás
- PC Architech Branding
- Azonnali készpénzes AMD CPU AMD VGA számítógép felvásárlás személyesen / postával korrekt áron
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
"
Mint írtam korábban, a p[n] subscript operátor az ekvivalens a *(p+n) művelettel.
"
