AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pointer inkrementieren?

Ein Thema von heiopei · begonnen am 10. Apr 2004 · letzter Beitrag vom 10. Apr 2004
Antwort Antwort
heiopei
(Gast)

n/a Beiträge
 
#1

Pointer inkrementieren?

  Alt 10. Apr 2004, 21:46
Abend,
in meinem programm (langzahlarithmetik) weise ich einem pointer ein statisches array
zu.


type ppnt: ^word;
var
test: array[0..10] of word;
pnt: ppnt;
...
//hauptprogramm
pnt := @test;
procedure bla(pnt: ppnt); //als parameter dürfen keine ^ zeichen übergeben werden !

nun möchte ich aber einer prozedur nur den pointer auf das erste feld des arrays geben
(die länge des arrays ebenfalls) und dann in dieser prozedur den pointer inkrementieren.
Wie schaffe ich das? (in der delhpi hilfe war nichts zu finden!!!) Geht da einfach
"inc(pnt)?

danke für hilfe,
heiopei
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#2

Re: Pointer inkrementieren?

  Alt 10. Apr 2004, 21:54
ch glaub nicht, aber wenn, dann würde es wohl eher inc(pnt, 4) sein

und bei
var test: packed array[0..10] of word; => inc(pnt, 2)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Pointer inkrementieren?

  Alt 10. Apr 2004, 21:58
Meine Delphi-Hilfe ist das sehr aussagekräftig:

Zitat:
Hinweis

Wenn X ein Zeigertyp ist, wird X um N-mal der Größe des Typs, auf den gezeigt wird, inkrementiert. Die folgenden Anweisungen

type

PMytype = ^TMyType;

und

var

P: PMyType;

Inc(P);

inkrementierten P um SizeOf(TMyType).
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#4

Re: Pointer inkrementieren?

  Alt 10. Apr 2004, 22:00
hm? ich dachte inc (wenn es geht) erhöht die Position immer nur um ein Byte
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
heiopei
(Gast)

n/a Beiträge
 
#5

Re: Pointer inkrementieren?

  Alt 10. Apr 2004, 22:07
hallo,
danke für den hilfekomentar!!!(ich bin leider nur besitzer von delphi6 personal, und da ist die doku teilweise sehr mangelhaft -- oder ich bin zu blöd das aus dem englischen text zu entziffern)

ps:

zitat hitsumi:
hm? ich dachte inc (wenn es geht) erhöht die Position immer nur um ein Byte

bei pointern wird immer so viel erhöht, wie die "pointer-längen-definition ist"
also z.B ^Word der pointer springt immer um 4 Byte weiter(glaub das war die wordlänge)

servas,
heiopei
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#6

Re: Pointer inkrementieren?

  Alt 10. Apr 2004, 22:11
eigentlich ist ein Word 2 Byte lang, da aber Delphi (Windows) alles wegen der Geschwindigkeit und es leichteren Zugriffs liebend gern an den Integergrenzen ausrichtet, sind es meistens 4 Byte (also jeweils 2 ungenutzte Byte)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Pointer inkrementieren?

  Alt 10. Apr 2004, 22:24
Zitat von himitsu:
eigentlich eis ein Word 2 Byte lang, da aber Delphi (Windows) alles wegen der Geschwindigkeit und es leicheren Zugriffs alles liebend gern an den Integergrenzen ausrichtet, sind es meistens 4 Byte (also jeweils 2 ungenutzte Byte)
Das passiert zwar bei Records, aber wenn in der Hilfe steht, dass bei meinem Pointer immer entsprechend der Datengröße inkrementiert wird, wird das schon so sein. Welchen Sinn hätte es, immer 4/8/16 etc. Byte zu inkrementieren? Dann könnte man das direkte Zeiger inkrementieren gleich in die Mülltonne treten.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#8

Re: Pointer inkrementieren?

  Alt 10. Apr 2004, 22:33
Da könntest du recht haben


und um nochmal zum Thema zu kommen - es geht also doch -.-
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz