Új hozzászólás Aktív témák
-
mgoogyi
senior tag
válasz
Tomi_78 #4256 üzenetére
A pointernek és a LoadFromFile-nak nincs köze egymáshoz.
A pointer csak egy logikai memóriacím.A programod változói mind a memóriában vannak valahol.
Az, hogy valami hol van, azt elrakhatod egy pointerbe, mint pl. egy int * p;
Ebbe a p-be berakhatsz egy memóriacímet és utána azt tudod, hogy azon a memóriacímen - ami a p-ben van - van egy int értéked, azaz 4 byte-od egymás után.Az egyszerűség kedvéért 0-tól 1000-ig legyenek a lehetséges memóriacímek.
Amikor leírok egy olyat, hogy new int, akkor a programod a memóriából kér magának 4 byte-ot egymás után, ahol majd az integer-ed tartalma lesz és ebből a 4 byteből az elsőnek a címét visszaadja. (A másik 3 byte közvetlen utána van.)
Ezért tudod megtenni azt, hogy aint * p = new int;
esetén a baloldalt ott van a p, ami értéket kap. Mégpedig ennek az 1. byte-nak a memóriában lévő sorszámát.Itt egy példakód megdebuggolva:
A programom a (hexadecimális) 12461a8-as byte-tól kezdve kapott összesen 4 byte-ot.
És erre a 4 byte-ra a 3-nak megfelelő adat lett beírva.Ez így világos?
Olvasd el sokszor, ha nem érted, elég fontos, hogy ez meglegyen. -
válasz
Tomi_78 #4256 üzenetére
Amit meg kell érteni jelen esetben az, hogy egyetlen darab AlakokKepe objektumod van és beállítottad azt, hogy mind a négy helyen erre az egyetlen egyre mutató link legyen.
A kód, amit írtál, pontosan azt csinálja, mintha ebben a sorrendbe írtad volna:
.
AlakokKepe->LoadFromFile("alak\\alak_all.bmp");
AlakokKepe->LoadFromFile("alak\\alak_lep1.bmp");
AlakokKepe->LoadFromFile("alak\\alak_lep2.bmp");
kepei[0] = AlakokKepe;
kepei[2] = AlakokKepe;
kepei[1] = AlakokKepe;
kepei[3] = AlakokKepe;és ebből következően az, aminek igazából hatása van, csak annyi, hogy
.
AlakokKepe->LoadFromFile("alak\\alak_lep2.bmp");
kepei[0] = AlakokKepe;
kepei[2] = AlakokKepe;
kepei[1] = AlakokKepe;
kepei[3] = AlakokKepe;
Ú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!
- Apple Watch series 4 GPS / 1 Hó Garancia / 85% akku
- BESZÁMÍTÁS! Lenovo Legion Go S 32GB/1TB kézikonzol garanciával hibátlan működéssel
- Azonnali készpénzes AMD Radeon RX 9000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- Frederick Forsythe: Isten ökle (nem olvasott)
- BESZÁMÍTÁS! MSI B550M WIFI R9 5900X 32GB DDR4 1TB SSD RX 6800XT 16GB Zalman Z1 PLUS Chieftronic 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest