Entwickler-Ecke
Sonstiges (Delphi) - Fehler "invalid pointer operation"
Dark-§hadow - Mo 08.10.07 21:29
Titel: Fehler "invalid pointer operation"
Hallo zusammen.
Ich habe gerade angefangen, ein werdenes Programm aufzusetzen. Ich arbeite das erste Mal mit dynamischen Arrays. Ich habe euch den Source und alles mal mit dazu gepackt.
Hoffe, dass bald jemand Zeit findet und dort mal ein Auge drauf wirft, ich denke nicht, dass es für euch weiter schwierig sein wird.
Narses - Mo 08.10.07 21:50
Moin!
Meinst du nicht, es reichte aus, uns die Fehlerstelle zu zeigen? :? Du gibst ja nichtmal eine (ausführliche) Fehlerbeschreibung oder eine Reproduktionsanleitung mit. :| Etwas "unhöflich", uns den Source hinzuklatschen und suchen zu lassen, hm? :shock:
cu
Narses
Sinspin - Mo 08.10.07 21:58
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormDestroy(Sender: TObject); begin FreeMem(arr); FreeMem(parr); end; |
Du brauchst ein dynamisches Array nicht frei zu geben. Das erledigt Delphi für dich. Wenn du unbedingt was schreiben willst dann tut es das:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormDestroy(Sender: TObject); begin Finalize(arr); Finalize(parr); end; |
Dein Quelltext sieht nicht so sonderlich toll aus. Ich würde sowas eher als Quähltext bezeichnen :wink:
@
Narses: Du hast recht. Ich denke mal, wenn du den Quelltext siehst, weist du auch warum es ist wies ist!
Dark-§hadow - Mo 08.10.07 21:58
Tut mir Leid, Narses ;_________________;
Also, ich starte des Programm...Klick auf den Button...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button1Click(Sender: TObject);
var
Itemcounta, a :string;
i :integer;
begin
a:='';
Itemcounta :=Inputbox('Warenanzahl',
'Bitte geben Sie die Anzahl der Waren an', Itemcounta);
Itemcount := StrtoInt (Itemcounta);
SetLength(arr, ItemCount);
SetLength(parr, ItemCount);
for i:=0 to Itemcount-1 do
begin
Arr[i]:=Inputbox(''+Inttostr(i+1)+'ter Wert',
'Bitte geben Sie den '+Inttostr(i+1)+'ten Wert an',a);
parr[i]:=Copy(arr[i],
Pos(',', arr[i]) +2,Pos(',', arr[i]) +2 );
end;
end; |
will dann das Programm beenden (Button application.terminate), dann kommt der Fehler.
Wenn Narses noch weitere Fragen hat, sag bescheid :P
Moderiert von
Narses: Delphi-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!