Eli minulla on seuraavanlainen metodi:
procedure TForm1.Test(ASrc : Integer; ASrc2 : Integer);
var
P : PByte;
begin
P := @ASrc; // P = 0x12F5BC
ShowMessage(IntToStr(Integer((P^))));
Dec(P, 4); // P = 0x12F5B8
//P := @ASrc2; // P = 0x12F5B8
// Näyttää väärän arvon kun Dec käytössä vaikka
// Osoite on sama kuin suoralla sijoituksella, miksi, eli kun käytän suoraa sijoitusta (kommentoitu) tuo näyttää oikein?
ShowMessage(IntToStr(Integer((P^))));
end;
En ymmärrä miksi tuo näyttää tuon viimeisen arvon päin mäntyä, kutsu on seuraavanlainen:
Test(5,8);
Delphi on CodeGear™ Delphi® 2007 for Win32® R2 Version 11.0.2804.9245
Kääntäjän bugiko?
3
582
Vastaukset
- hemmoit
Jäi vähän epäselväksi mikä on ko koodin tarkoitus...
Mutta miksi PByte (Osoitin 8 bittiseen arvoon) 32 bittiselle integerille ? eikö PInteger ole olemassa...
Haluatko nyt lisätä ASrc arvoon 4, vai yritätkö saada selville ASrc2:sen osoiteen pinossa (joka olisi kikkaillua) ?- Ihmettelevä_testailija
Joo, tosiaan tarkoitus oli saada selville tuon pinon logiikka/arvot, aloittelija kun olen, osaatko siis kertoa tarkemmin kuinka tuon teen, teoria on kyllä hallussa, mutta eipä tuo käytäntö oikein. Eikö tavu pointteri tuossa ole ihan ok?
- öty-
Ihmettelevä_testailija kirjoitti:
Joo, tosiaan tarkoitus oli saada selville tuon pinon logiikka/arvot, aloittelija kun olen, osaatko siis kertoa tarkemmin kuinka tuon teen, teoria on kyllä hallussa, mutta eipä tuo käytäntö oikein. Eikö tavu pointteri tuossa ole ihan ok?
Dec(P, 8) ... Taitaa olla 64 bittinen voit tietenkin käyttää tavupointteria mutta jos laitat 255 suuremman luvun niin huomaat mitä tapahtuu, jos taas "P:Pinteger" niin pitää olla Dec(P,2) eli vähennetään 2 integeriä Kokeile myös "pointer" ja "PWord"
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Oho! Sofia Belorf ja "rillimiljönääri-rakas" sai somen liekkeihin: "Optikko vai grillikioskin...?"
"Rillimiljönääri-rakas" on kyllä hyvä titteli!!! Tsemppiä Sofialle rakkauteen ja terkkuja Nikolle ja Stefanille! Lue l252048- 1221213
Pitäisikö valtion lopettaa Terveysjättien tukeminen
Nyt annetaan puoli miljardia veroparatiiseihin ja kavereille, eikö olisi järkevää että valtio tukee vain Julkista puolta1341188Mitä luulet kaivattusi ajattelevan sinusta?
Oletko ollut hänen mielestään reilu, rehellinen ja ymmärtäväinen? Vai oletko hänen mielestään se, joka ei ollut reilu ei91056Sofia ei taida tajuta, että kaikki nauravat hänelle
Sofia feikkaa luksuslokkeilua muttei tajua, että se aiheuttaa lähinnä myötähäpeää ja kaikki nauravat hänelle.145962Yllätyskäänne: Kivitipun huutokauppa rauksesi, myynnissä uudelleen.
Kivitipusta käydään edelleen kauppaa, vaikka alkuperäinen huutokauppamyynti raukesikin. https://ilkkapohjalainen.fi/ta36873- 62767
Mukava nainen on
Hyvännäköinen ja jollain tavalla räväkkä. Katsoin häntä, mutta mietin sinua kuitenkin. Ihan vaikka koko pitäjän kauneimm54760- 142756
Pertikki out
Lopeta nyt Pertikki tuo poliitiikan jauhaminen täällä. Mene jonnekin poliitiikan erikoissivuille ja jankkaa tuota muuall185742