Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

type pointer ?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 14.11.2007, 14:20    Titel: type pointer ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 14.11.2007, 15:07    Titel: Antworten mit Zitat

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 zwinkern
( http://www.freebasic-portal.de/index.php?s=download&id=52 )
_________________
Bis irgendwann... grinsen


Zuletzt bearbeitet von AndT am 14.11.2007, 15:13, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 14.11.2007, 15:09    Titel: Antworten mit Zitat

Wenn Du auf Records mittels eines Pointers zugreifst, mußt Du dereferenzieren:
Code:

Print Punkte(33).X


entspricht
Code:

Einzelpunkte(33)->X

_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 14.11.2007, 15:16    Titel: Antworten mit Zitat

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... grinsen


Zuletzt bearbeitet von AndT am 14.11.2007, 15:50, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 14.11.2007, 15:24    Titel: Antworten mit Zitat

Thx @ Elektronix !!!
Nu klappts lächeln 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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz