- Android Autót minden mobilra!
- iPhone topik
- Apple iPhone 17 - alap
- Xiaomi 15 - kicsi telefon nagy energiával
- Sebtapasz: telepíthető az iOS 26.0.1
- Magisk
- Apple iPhone 17 Pro Max – fennsík
- Megérkeztek a Xiaomi 15T sorozatának telefonjai Magyarországra
- Fotók, videók mobillal
- Rekordérdeklődés a Xiaomi hátsó kijelzője iránt
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
mgoogyi #4142 üzenetére
"Pont nem érdekel, nem látom a gyakorlati jelentőségét"
Pl. az lehet a gyakorlati jelentősége, hogy innen már világos, hogy a C/C++ -ban miért nem lehet dinamikus méretű tömböt deklarálni (bár mint most megtudtam, újabb C szabvány szerint lehet):
int n=10;
int a[n]; //hiba. tomb meret csak konstans lehetEzt kezdők általában nem szokták érteni.
Ha az új C szabvány ezt mégis megengedi, akkor a tömb címe szükségképpen eltárolódik a memóriában (mintha változó lenne), de a fordító nem engedi meg a megváltoztatását és a címének képzését (gondolom így van, de nem ismerem a C-nek ezt a lehetőségét).
Másik gyakorlatban fontos vonatkozása a dolognak, hogy a dinamikusan allokált memóriát fel kell szabadítanod (ha nem akarsz memory leaket), a tömböt pedig nem kell (sőt nem szabad!) felszabadítani (hiszen nem a heapen lett lefoglalva). Tekintsük a következő kódrészletet:int tomb[10];
int *dinamik_tomb=new int[10];
int *pointer;
pointer=tomb;
delete[] pointer; //hiba! nem szabad felszabaditani a tomb-ot
pointer=dinamik_tomb;
delete[] pointer; //OK, fel kell szabaditani a dinamik_tombotAmint látod, a pointer felszabadításánál észnél kell lenni, tudni kell, hogy tömb, vagy dinamikusan allokált memória terület címét tartalmazza-e. Ebből bizony sok hiba adódik (jó párat láttam már), és megy a fejvakarás, hogy miért száll el a program, hiszen a "tomb valójában pointer". Hát nem!
-
jattila48
aktív tag
válasz
mgoogyi #4142 üzenetére
Nevezheted tömbnek a dinamikusan allokált memória területet, de az nem tömb abban az értelemben (konstans mérettel deklarált tömb), ahogy írtam. A különbséget nem írom le még egyszer.
"Pusztán ránézve a kódra én "a"-ra és "b"-re is változóként(előbbire pointer típusú változóként, utóbbira tömb típusúként) fogok hivatkozni."
b nem változó, hiszen nem változhat az értéke, mint ahogy egy változónál (a nevében is benne van) ez megtörténhet. Ennyi erővel a 3-at is nevezheted változónak, holott az sincs sehol a memóriában eltárolva. A tömb esetében kicsit azért kevésbé nyilvánvaló, hogy nem változó, hanem konstans, mert nevet adsz neki. A 3 leírva konstans literál, ezért nyilvánvalóbb hogy ő nem változó. Azonban írhatsz olyat, hogyconst int harom=3;
enum akarmi={nulla,egy,ketto};
ahol a névvel illetett számok szintén konstansok, nem lehet sem megváltoztatni az értéküket, sem a címüket képezni. A tömb ugyanilyen értelemben konstans. Ennek a látszat ellenére igenis van gyakorlati jelentősége, és illik is tudni róla. Csak erre szerettem volna felhívni a figyelmet
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Túlfeszültség ellen védő elosztó
- Roguelite labirintusépítő játék lesz a Minos (PC)
- Melyik tápegységet vegyem?
- Konzolokról KULTURÁLT módon
- Gitáros topic
- Október közepétől kezdi el megoldani a PC-s játékosok gondját a Microsoft
- Spórolós topik
- Robotporszívók
- NIOH
- További aktív témák...
- SZERVÍZ akár KISZÁLLÁSSAL!!
- LOQ 15IRH8 15.6" FHD IPS i5-12450H RTX 4050 16GB 512GB NVMe magyar vibill gar
- Crucial P3 Plus 2TB M.2 NVME PCI-E 4.0 x4 - Új - Eladó! 37.000.-
- Corsair Vengeance RGB 2x16GB DDR5 6000MHz CL30 - Új, 1 év gari - Eladó!
- SAMSUNG 4TB 990 PRO M.2 NVME PCI-E 4.0 x4 - Új - 7450-6900 MBs - Eladó!
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Gamer PC- Számítógép! Csere-Beszámítás! I7 4790K / 16GB DDR3 / RX 5700XT 8GB / 512GB SSD
- HIBÁTLAN iPhone 14 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3159
- Xiaomi Redmi 14C 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÚJ ÁRU 09.25. !!! HP üzleti laptopok Elitebook, Probook, Zbook 8-13. gen gar.
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest