Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 14.11.2007, 14:20 Titel: type pointer ? |
|
|
Ich würde gerne folgendes realisieren:
Code: |
type punkt
x as integer
y as integer
end type
dim punkte(1 to 100) as punkt
dim einzelpunkt as punkt ptr
einzelpunkt = @punkte(33)
einzelpunkt.x = 12345
print punkte(33).x
|
Klappt nicht weil sich freebasic über "einzelpunkt.x" beschwert. ( Expected '=', found 'x' in 'einzelpunkt.x = 33' )
Würd wohl heissen das "einzelpunkt" keine elemente von "punkt" kennt obwohl es ein entsprechender datentyp (nur als zeiger) ist.
Kann mir da einer weiterhelfen? |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 14.11.2007, 15:07 Titel: |
|
|
Aktuellisiere Bitte die Freebasic version^^
Aktuell : 0.18.2 (0.18.3 inoffiziell)
Damit gehts aber gibt 0 aus. Wenn das der sinn sein soll
( http://www.freebasic-portal.de/index.php?s=download&id=52 ) _________________ Bis irgendwann... 
Zuletzt bearbeitet von AndT am 14.11.2007, 15:13, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 14.11.2007, 15:09 Titel: |
|
|
Wenn Du auf Records mittels eines Pointers zugreifst, mußt Du dereferenzieren:
entspricht
Code: |
Einzelpunkte(33)->X
|
_________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 14.11.2007, 15:16 Titel: |
|
|
Aber sei gewarnt^^
Es kann leicht ein Pufferüberlauf entstehen..
Code: | TYPE punkt
x AS UBYTE
y AS UBYTE
END TYPE
DIM punkte(0 to 0) AS punkt
DIM einzelpunkt AS punkt PTR
for i = 1 to 1500
PRINT chr(punkte(i).x);
next
SLEEP |
_________________ Bis irgendwann... 
Zuletzt bearbeitet von AndT am 14.11.2007, 15:50, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 14.11.2007, 15:24 Titel: |
|
|
Thx @ Elektronix !!!
Nu klappts dankschööööööön!
So wärs dann richtig:
Code: |
type punkt
x as integer
y as integer
end type
dim punkte(1 to 100) as punkt
dim einzelpunkt as punkt ptr
einzelpunkt = @punkte(33)
einzelpunkt->x = 12345
print punkte(33).x
sleep
|
|
|
Nach oben |
|
 |
|