- Milyen alaplapot vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Azonnali notebookos kérdések órája
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Házimozi belépő szinten
- OLED TV topic
- Projektor topic
- Fejhallgató erősítő és DAC topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Melyik tápegységet vegyem?
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz
Jhonny06 #1317 üzenetére
Igen, ez már közelít az igazsághoz. A fenti kód önmagában még nem lenne baj, vagyis az, hogy az x tudja írni az y viszont nem, az még nem probléma, millió olyan eset van amikor különböző pointereken keresztül különböző elérésed van, például:
char c;
char* x = &c;
const char* y = &c;Ezzel semmi baj, x-en keresztül lehet írni, y-on nem.
A gond ott kezdődik, hogy az említett struktúra módot adna olyan konverzióra aminek során a const elveszik egy pointerből. Látszólag ugye itt éppen hozzáadódik és ez biztonságosnak tűnik, de valójában egy kiskaput nyit:
char* x;
const char** y = &x;
const char* z;
*y = z;
*x = 0;Itt a z pointerről leszedtük a const-ot és az x-en keresztül olyan címre írtunk amire nincs felhatalmazásunk. Ugye *y típusa const char* és z is ez, tehát a *y = z rendben van. Viszont mivel y=&x ezért most már x is ugyanoda mutat ahová z, csak x nem const vagyis *x írható.
Mégegyszer hangsúlyoznám, nem az a baj, hogy több pointer ugyanazt a címet különböző módon éri el, hanem az, hogy egy tetszőleges const pointerből írhatót lehetne varázsolni. (Persze egy cast-tal ezt még mindig meg lehet tenni de az már más kérdés.)
Ú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 alaplapot vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- The Division 2 (PC, XO, PS4)
- Battlefield 6
- Kerékpárosok, bringások ide!
- Azonnali notebookos kérdések órája
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen légkondit a lakásba?
- Hálózati / IP kamera
- Új telefont és tabletet mutatott be a Telekom
- További aktív témák...
- Lenovo ThinkPad P1 G7
- LG 27GR83Q-B - 27" IPS / QHD 2K / 240Hz & 1ms / NVIDIA G-Sync / FreeSync / DisplayHDR 400
- Samsung Galaxy A9 2018 128GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 15 Pro Max 256GB Natura Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3007, 91% Akksi
- Eladó karcmentes Honor 20e 4/64GB / kék / 12 hó jótállással
Állásajánlatok
Cég: FOTC
Város: Budapest