AGB  ·  Datenschutz  ·  Impressum  







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

Zeiger auf Arrays

Ein Thema von Philipp · begonnen am 15. Mär 2004 · letzter Beitrag vom 15. Mär 2004
Antwort Antwort
Philipp

Registriert seit: 15. Mär 2004
2 Beiträge
 
#1

Zeiger auf Arrays

  Alt 15. Mär 2004, 22:01
Ich habe einen Zeiger auf eine stelle eines dynamischen Arrays gerichtet kann aber, wenn ich über setlength dem Array eine neue größe zugeordnet habe, nicht mehr auf die entsprechenden Werte zugreifen und bekomme falsche Ergebnisse. Kann man dies irgendwie umgehen, sodass die Zeiger auch nach verlängern des Arrays auf die richtigen Werte zeigen?
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: Zeiger auf Arrays

  Alt 15. Mär 2004, 22:04
Vorschlag 1:

Verwenden einer Liste. -> TList

Vorschlag 2:

Den Zeiger nicht auf das Array-Element sondern die Daten. -> Array of Pointer
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Chewie

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

Re: Zeiger auf Arrays

  Alt 15. Mär 2004, 22:06
Eine "dynamisches Array"-Variable ist von sich aus schon ein Zeiger auf das Array. Wenn du darauf noch einmal einen Zeiger setzt, passiert folgendes: Bei jedem Aufruf von SetLength wird das Array an eine andere Speicherstelle verschoben. Daher ist der alte Zeiger nicht mehr gültig.
Benutz also nicht mehr einen Zeiger auf einen Zeiger!
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Philipp

Registriert seit: 15. Mär 2004
2 Beiträge
 
#4

Re: Zeiger auf Arrays

  Alt 15. Mär 2004, 22:12
Danke für die Antworten. Ich verstehe nicht ganz wie ich einen Zeiger direkt auf die Daten erstelle.
Was meinst du mit "Array of Pointer"?
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#5

Re: Zeiger auf Arrays

  Alt 15. Mär 2004, 22:15
Delphi-Quellcode:
PData = ^TData;
TData = record
  ???
end;

var a : array of PData;
Da die Daten Seperat angelegt werden müssen (via New) bleiben diese Zeiger Constant.

Diese Vorgehensweise ist gleich der von TList.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  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 22:57 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