AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Pointeradresse auslesen

Ein Thema von paul.kunig · begonnen am 11. Sep 2019 · letzter Beitrag vom 21. Sep 2019
 
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.100 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Pointeradresse auslesen

  Alt 11. Sep 2019, 13:51
Zunächst mal:
Wir sprechen über Delpi 5, wenn ich #1 richtig interpretiere, also String = ShortString.

Zitat:
Ich möchte den Wert des Eingabefeldes im Heap speichern, daher der Typisierte Zeiger.
.
Was aber aus #1 nicht hervorgeht.

Zitat:
Wenn ich den Zeiger nicht mit New() erzeuge, gibt es eine Zugriffsverletzung.
Also ist diese Speicherzuweisung notwendig.
.
Ja, wenn "Eingabe" als ^String deklariert ist, ist das so.

Zitat:
Wozu sollte noch eine Adresse für ein und die selbe Variable, in diesem Fall ein Zeiger, benötigt werden.
.
"Eingabe" ist die Variable, in der die Adresse des allozierten Speicherbereiches steht.
Der Inhalt von "Eingabe" ist diese Adresse.
Also: Die Variable "Eingabe" und die Adresse des allozierten Speicherbereiches sind nicht dasselbe.
Egal, ob du den Speicher mit New(Eingabe) oder z.B. mit GetMem(Eingabe, SizeOf(String)) allozierst, brauchst du einen Ort, wo die Adresse des allozierten Speichers gespeichert wird

Zitat:
Wobei diese anscheinend in verschiedenen Bereichen des Speichers abgelegt sind.
Adresse des Zeigers = achtstellig.
Adresse der Variable, die ja der Zeiger ist = siebenstellig.
.
"Eingabe" ist eine lokale Variable, die auf dem Stack angelegt wird.
Der mit New allozierte Speicher liegt dagegen auf dem Heap.
Der Stack wächst von oben nach unten, der Heap aber von unten nach oben.
Heap und Stack sind also unterschiedliche Speicherbereiche.

Zitat:
Es erschließt sich mir nicht, warum die Adresse eines Zeigers in einer Variable gespeichert werden soll, obwohl der Zeiger selber die Möglichkeit bietet sich selber auszulesen.
.
Wie stellst Du Dir denn vor zunächst einen Speicherbereich für den Text zu allozieren und anschließend den Text in diesem zu speichern, wenn Du die Adresse des Speicherbereiches nicht irgendwo speicherst?
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz