AGB  ·  Datenschutz  ·  Impressum  







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

untypisierter pointer

Ein Thema von Jan · begonnen am 4. Dez 2004 · letzter Beitrag vom 21. Jan 2005
Antwort Antwort
Seite 2 von 3     12 3      
runger
(Gast)

n/a Beiträge
 
#11

Re: untypisierter pointer

  Alt 8. Dez 2004, 06:32
Hallo,

ein Pointer ist nichts anderes als eine Adresse und sonst garnichts!
Einem Pointer kann kein Mensch ansehen was an dieser Speicheradresse, auf die er zeigt steht!

Aus diesem Grund ist der Ausdruck typisierter Pointer absoluter Quatsch!

Rainer
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: untypisierter pointer

  Alt 8. Dez 2004, 06:38
Und ein typisierter Pointer beinhaltet für den Compiler noch die Information um was für einen Typ von Daten es sich hinter der Adresse handelt auf die der Zeiger zeigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#13

Re: untypisierter pointer

  Alt 8. Dez 2004, 07:57
Hallo Luckie,

das möcht ich sehen. Hast du ein Stück Code?
Oder gib mir ein Beispiel für einen "typisierten Pointer"

Rainer
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#14

Re: untypisierter pointer

  Alt 8. Dez 2004, 08:06
Hallo,

Zitat von runger:
das möcht ich sehen. Hast du ein Stück Code?
Oder gib mir ein Beispiel für einen "typisierten Pointer"
Ließt du eigentlich die Antworten eigentlich richtig durch Beispiel (grad kein Delphi zur Hand Experimental-Code :

Delphi-Quellcode:
var
  tpoint: ^Int64; // Das nennt man einen typisierten,
  utpoint: Pointer; // das einen untypisierten Pointer!

const
  a: array[0..6] of Int64 = (0,1,2,3,4,5,6);

begin
  tpoint = @a;
  utpoint = @a;

  inc(tpoint);
  inc(utpoint);

  // hier sollte tpoint^ den Wert 1 und
  // Int64(utpoint^) den Wert 0 liefern.
end
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#15

Re: untypisierter pointer

  Alt 8. Dez 2004, 08:07
Hallo runger,

Beispiele für typisierte Zeiger siehst du oben (z.B. im Beitrag von Muetze). Der Compiler prüft deshalb, ob bei einer Zuweisung an diesen Pointer auch der korrekte Typ verwendet wird, d.h. der Pointer zeigt immer auf Strukturen, die ihm vorher in der Definition bekannt gegeben wurde. Über den New Operator kann der Compiler auch feststellen, wieviel Speicherplatz er reservieren muss.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#16

Re: untypisierter pointer

  Alt 8. Dez 2004, 08:58
Hallo,

wenn ihr das so seht OK. Vergesst mein Geschwätz!

Danke
Rainer
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#17

Re: untypisierter pointer

  Alt 8. Dez 2004, 09:44
Irgendwie werde ich den Verdacht nicht los, dass du sauer bist, dass es typisierte Pointer in Pascal gibt.

Zitat:
Vergesst mein Geschwätz!
... ääh wovon hattest du noch gesprochen?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: untypisierter pointer

  Alt 13. Dez 2004, 17:26
Also gerade wenn ein Problem mit diesen unsäglichen Pointern behoben ist kommt das nächste:

Ich habe folgenden code:


Delphi-Quellcode:
      temp:=tstringlist(listview1.selected.data);
      freeandnil(temp);
      if workarray[0]=nil then
        showmessage('bla');
temp ist vom typen tstringlist.
data ist ein pointer auf ein tstringlist element des arrays workarray.
workarray ist ein array vom typen tstringlist.
Wenn ich jetzt zur Laufzeit den ersten Eintrag im Listview löschen will, also den workarray[0] dann soll der zeiger Data vom selektierten Listitem auf temp gespeichert werden, und dann freigegeben werden. Leider klappt aber die Abfrage if workarray[0]=nil nicht. Allerding gibt ein Zugriff auf workarray[0] eine AV. Wie kann ich jetzt abfragen ob workarray[0] nun wirklich freigegeben wurde?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#19

Re: untypisierter pointer

  Alt 13. Dez 2004, 18:05
Moin!

Die AV kommt doch, weil er schon freigegeben wurde. Du musst nur noch das Array Element 0 löschen...

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: untypisierter pointer

  Alt 13. Dez 2004, 19:22
Hallo Muetze1,
natürlich bekomm ich eine AV, muss ja auch, es geht mir aber darum, dass ich bei workarray[0]=nil kein true rausbekomme, obwohl das Element ja freigegeben wurde. Wie kann ich also abfragen ob der workarray[i] freigegeben wurde?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 00:34 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