Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.08.2007, 10:10 Titel: Suspicious pointer assignment? |
|
|
Hi,
hab mal wieder ein kleines Problem mit zugriffen auf Pointer.
Ein einfaches Beispiel:
Code: |
DIM Farbe AS UINTEGER
DIM FarbeP AS UBYTE PTR=@Farbe
Farbe=&H123456
?Hex(FarbeP[2],2);Hex(FarbeP[1],2);Hex(FarbeP[0],2)
sleep
|
Es funktioniert zwar problemlos in der IDE, aber der Compiler
gibt mir eine Warnung dazu aus, wieso?
Compiler output: hat Folgendes geschrieben: |
D:/FreeBASIC/FBIDETEMP.bas(3) warning 4(1): Suspicious pointer assignment
|
_________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.08.2007, 10:15 Titel: |
|
|
Habs schon, Sorry
Code: |
DIM Farbe AS UINTEGER
Dim FarbePP as Any Ptr=@Farbe
DIM FarbeP AS UBYTE PTR=FarbePP
Farbe=&H123456
?Hex(FarbeP[2],2);Hex(FarbeP[1],2);Hex(FarbeP[0],2)
|
_________________
 |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.08.2007, 14:46 Titel: |
|
|
o_O
du kannst auch UINTEGER PTR nehmen statt ANY PTR, das wäre glaub ich passender, und den zweiten pointer kannste auch als UINTEGER PTR PTR definieren glaube ich, aber da bin ich mir nich so sicher.. aber wenn du halt auf nen UBYTE PTR ein @uIntArray zuweist, is klar das der da meckert ;p _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.08.2007, 14:58 Titel: |
|
|
Code: |
Dim Irgendwas as UInteger
Dim IrgendwasIntP as UInteger PTR=@Irgendwas
Dim IrgendwasByteP as UByte Ptr=IrgendwasIntP |
So, gehts nicht...
Code: |
Dim Irgendwas as UInteger
Dim IrgendwasIntP as Any PTR=@Irgendwas
Dim IrgendwasByteP as UByte Ptr=IrgendwasIntP |
So gehts...
Der sinn dahinter ist das ich in diesem Fall Irgendwas einen Farbwert verpassen will und ich ohne umstaendliches rechnen die einzelnen RGB Werte entnehmen will... _________________
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 18.08.2007, 20:02 Titel: |
|
|
Wie funktioniert dies?
Code: | Dim Farbe As Uinteger
Dim FarbeP As Ubyte Ptr= cast(Ubyte Ptr, @Farbe)
Farbe=&H123456
?Hex(FarbeP[2],2);Hex(FarbeP[1],2);Hex(FarbeP[0],2)
Sleep |
FB will nur die richtige Formulierung haben.  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.08.2007, 20:04 Titel: |
|
|
das ist schon viel besser
da kann ich mir diese eine extra deklaration des any ptr wieder sparen
Danke _________________
 |
|
Nach oben |
|
 |
|