Hirdetés
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Kormányok / autós szimulátorok topikja
- Idővel kicsúszik az aljzatból a 12V-2x6 tápkonnektor?
- Androidos tablet topic
- Házimozi belépő szinten
- Amlogic S905, S912 processzoros készülékek
- Vezetékes FEJhallgatók
- Tápos kibeszélő offtopik
- OLED TV topic
- Azonnali VGA-s kérdések órája
Ú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!
- Kételkedsz még a Marathonban? Nézz meg egy teljes kört!
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Mobilinternet
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Kormányok / autós szimulátorok topikja
- Könyvajánló
- Idővel kicsúszik az aljzatból a 12V-2x6 tápkonnektor?
- Hosszú premier előzetest kapott az Arknights: Endfield
- Fotók, videók mobillal
- Androidos tablet topic
- További aktív témák...
- TESTRESZABHATÓ/GARIS/ i5-8600K/16GB DDR4 3000 MHZ/RX 6600 XT 8 GB/ 512 GB M.2 SSD
- Beszámítás! Apple iPad 9 (2021) Wifi 64GB tablet garanciával hibátlan működéssel
- Beszámítás! Asus VG27AQ3A 27 180Hz QHD IPS 1ms monitor garanciával hibátlan működéssel
- Beszámítás! Asus ROG Strix Scar Edition G533Z notebook-i7 12700H 16GB DDR5 1TB SSD RTX 3060 6GB W11
- Beszámítás! HP Elitebook 840 G11 14 FHD notebook - Ultra 5 135U 16GB DDR5 256GB SSD Intel Win11
- Bomba ár! Dell Latitude E6430 - i5-3GEN I 8GB I 128-256SSD I HDMI I 14" HD+ I W10 I Garancia!
- Új és újszerű 13-14 Gamer, ultrabook, üzleti, 2in1, X360, Touch készülékek kedvező áron Garanciával
- Dell Vostro 3425 6magos Ryzen 5 5625U 16GB RAM 512GB SSD 1 év garancia
- Bomba ár! Dell Latitude E7450 - i5-5GEN I 8GB I 128GB SSD I 14" HD I HDMI I Cam I W10 I Garancia!
- Sandisk Portable SSD 2TB!
Á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.
"
