- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- bambano: Bambanő háza tája
- sziku69: Fűzzük össze a szavakat :)
- Sonarr és Radarr
- eBay-es kütyük kis pénzért
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- weiss: Logi MX Master 3S FW NEM frissítés
- Geri Bátyó: Agglegénykonyha 2 – Főzés: szabályok, vagy szabadság?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
Ú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!
- Lenovo Thinkpad Intel I7 - 32GB DDR4 - SSD 1TB - NVidia 4GB DDR6 - 4K LCD - Carbon Fiber/Magnesium
- Metabo PowerMaxx 12V akkus gépek és szettek 2/2
- Metabo PowerMaxx 12V akkus gépek és szettek 1/2
- Eladó ZTE MC888A 5G + router LTE Sim kártyás
- Dell Latitude 5450 14" FHD IPS ULTRA 5 135U vPRO 12 Mag 16GB RAM 512GB NVME SSD 2028-ig Gar
- Bomba ár! HP EliteBook 840 G3 - i5-6GEN I 8GB I 256GB SSD I 14" HD I Cam I W10 I Garancia!
- Eladó Apple iPhone 13 256GB Kék / 12 hó jótállás
- Honor 90 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- Honor X7b 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy Z Flip 4 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest