Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 22. Sep 2006, 21:05
Hallo,

Zitat von EWeiss:
Code:
WINAMPPLUGINPROPDSP **winampDSP = NULL;
Diese zeile erzeugt ein dynamisches array welches ich in Delphi übersetzen muss.
es wird hier nur ein typisierter Zeiger deklariert und mit NULL initialisiert, wenn ich nicht irre.

Zitat von EWeiss:
Es ist ein Speicherbereich, in dem hintereinander Pointer auf
Insanzen vom Typ: WINAMPPLUGINPROPDSP
Gespeichert werden.
Hier bin ich mit dir einer Meinung.

Der Zugriff kann über Zeiger-Arithmetik erfolgen oder durch Überlagerung des Speicherbereiches mit einem Array. Vielleicht verhilft dir ein wenig Code zur Erkenntnis?

Delphi-Quellcode:
type
  WINAMPPLUGINPROPDSP = record
    // ...
  end;
  PWinAmpPluginPropDSP = ^WINAMPPLUGINPROPDSP;
  PPWinAmpPluginPropDSP = ^PWinAmpPluginPropDSP;

var
  WinAmpDSP = PPWinAmpPluginPropDSP;

// access using pointer arithmetic and nil indicating end of list
var
  p: PWinAmpPluginPropDSP;
begin
  p := WinAmpDSP^;
  while Assigned(p) do
  begin
    // ShowMessage(p^.anyStringMember)
    Inc(p);
  end;
end;


// access using array overlay and count indicating end of list
type
  TA: array [0..0] of PWinAmpPluginPropDSP;
var
  pa: ^TA;
  count: Integer;
begin
  // ...
  pa := WinAmpDSP;
  for i := 0 to Pred(dspCount) do
    // ShowMessage(pa[i]^.anyStringMember) ;
end;
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat