AGB  ·  Datenschutz  ·  Impressum  







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

Wert hinter Pointer erhalten

Ein Thema von Cöster · begonnen am 7. Dez 2006 · letzter Beitrag vom 8. Dez 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 18:40
Nein, ich habe es NICHT mit Addr() verwechselt. Ich dachte, dass der Typecast auf Pointer eine Referenzierung bewirkt.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 18:59
Aber in Zukunft bitte nicht mehr die Adressen von lokalen Variablen in globalen Datenstrukturen ablegen, ok?

Gruß Hawkeye
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 19:20
Zitat von Hawkeye219:
Aber in Zukunft bitte nicht mehr die Adressen von lokalen Variablen in globalen Datenstrukturen ablegen, ok?
Wie macht man das denn dann, wenn's jetzt keine Integer sind, die man in TStack, TList o. ä. ablegen will?

PS: Wo issn da jetzt eig. ne globale Datenstruktur?
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 19:35
Zitat von Cöster:
Wie macht man das denn dann, wenn's jetzt keine Integer sind, die man in TStack, TList o. ä. ablegen will?
Das hast Lukas bereits angedeutet. Den Speicherplatz dynamisch anfordern, die Daten reinkopieren und dann den Zeiger auf den Speicherblock im Stack oder in der Liste ablegen.

Zitat:
Wo issn da jetzt eig. ne globale Datenstruktur?
In Manuels Code ist der Stack außerhalb der Routinen PushInt und PopInt deklariert. Der Prozedurparameter Val ist eine lokale Variable, deren Wert nach der Rückkehr aus der Prozedur undefiniert ist. In deinem Beispiel (Beitrag #6) finden alle Aktionen (Erzeugen des Stacks, Push und Pop) innerhalb einer Routine statt. Das kann gutgehen - in der Praxis würde das aber wahrscheinlich niemand so machen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 19:38
edit: unwichtig.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 19:39
Ich habe auch nie gesagt, dass das sonderlich schön ist. TStack, TQueue, TList usw. sind nunmal für Klasseninstanzen gedacht. Wenn man primitive Datentypen da reinbasteln will, empfiehlt sich eine eigene Liste oder alternativ eine Wrapper-Klasse wie in Java.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 19:55
Zitat von 3_of_8:
Ich habe auch nie gesagt, dass das sonderlich schön ist. TStack, TQueue, TList usw. sind nunmal für Klasseninstanzen gedacht.
Ne, dafür sind TObjectStack, TObjectQueue und TObjectList gedacht.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 23:24
Moin Cöster,

ich hoffe nur, dass Dir klar geworden ist, dass das Ablegen der Adresse einer lokalen Variablen keine gute Idee ist, da diese nur innerhalb der lokalen Prozedur gültig ist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Wert hinter Pointer erhalten

  Alt 8. Dez 2006, 13:36
Zitat von Christian Seehase:
Moin Cöster,

ich hoffe nur, dass Dir klar geworden ist, dass das Ablegen der Adresse einer lokalen Variablen keine gute Idee ist, da diese nur innerhalb der lokalen Prozedur gültig ist.
Jap. Integer-Typen (bei kleineren wie Byte oder Word doch auch, oder?) kann man direkt in Pointer umwandeln (per Type Casting), ansonsten mit New erst Speicher reservieren, auf dem dann ein Wert abgelegt wird und dessen Adresse in der Liste, dem Stack oder was auch immer ablegen. Richtig?

Danke nochmal an alle
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 02:08 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