Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Ungültige Zeigeroperation. Wo ist der Fehler?!

  Alt 7. Feb 2013, 16:29
Mir kommt hier das eine oder andere seltsam vor:
Delphi-Quellcode:
procedure TForm1.Iteration(const normiert:array of double;const ProdRate:double;var Puffer_ganzzahl:array of integer;var Puffer_exakt:array of double);
var
....
XS,XF:tfeld;
...
begin
  setlength(XS,k_abs,w_abs);
  setlength(XF,k_abs,w_abs);
Was auch immer TFeld sein mag, Setlength kenne ich nur mit 2 Parametern

Auch das hier sollte proteste des Compiler hervorrufen:
Delphi-Quellcode:
for i:=0 to k_abs do
    Puffer_exakt[i]:=Puffer_ganzzahl[i];
Double und Integer sind nun einmal nicht zuweisungskompatibel.

Du wirst Deine Gründe haben:
Delphi-Quellcode:
    for i:=1 to k_abs-3 do
      begin
        Puffer_exakt[i]:=Puffer_exakt[i]+normiert[i]*(k_abs-2);
        Puffer_ganzzahl[i]:=floor(Puffer_exakt[i]);
      end;
aber ein Dyn array fängt bei 0 an und Du solltest möglichst mit length, high und low arbeiten.

Nebenbei bemerkt, k_abs und w_abs als Parameter übergeben erleichtert das Debugging ungemein.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat