Re: EInvalidPointer bei dispose Befehl.



Martin Freiberg typed:
Hi,

Ich habe da ein Pointer-Problem mit Freepascal (Unter Linux - Ubuntu).

An unhandled exeception occurred at $0805BA62 : EInvalidPointer :
Invalid pointer operation $0805BA62
$080F1786 DateiClose, line 421 of .....
Program exited with code 0331.

Ich reserviere in einer Procedure per "new (FileBuff);" Speicher.
Dann Arbeite ich damit, klappt auch alles, und danach gebe ich den
Speicher wieder mit "dispose (FileBuff);" wieder Frei.
Und immer wenn ich Dispose aufrufe bekomme ich den Fehler
EInvalidPointer.

Filebuff : ^array [0..1023] of char;

Filebuff ist global definiert.

variable oder type? - bei varibale brauchst du dich nicht weiter
wundern.

type tfilebuff = array [0..1023] of char;
var filebuff : ^tfilebuff

ich glaube nicht, dass array[x..y] ein definierter typ ist und dispose
deswegen knallt.

.... versuch es mal so?

sonst auch nur ins blaue ...

deklarier mal freien speicher davor und dahinter und schau dir den an?

ansonsten, kannst du kurzen code schreiben, der den "fehler"
reproduzierbar verusacht?

greetz
jo

--
http://radio789.net.ms - Radio 789 - We play it ALL
Radiostream: http://stream789.net.ms

.



Relevant Pages

  • EInvalidPointer bei dispose Befehl.
    ... Dann Arbeite ich damit, klappt auch alles, und danach gebe ich den Speicher wieder mit "dispose;" wieder Frei. ... Und immer wenn ich Dispose aufrufe bekomme ich den Fehler EInvalidPointer. ... Wieso schmeist mir dispose einen EInvalidPointer, obwohl die Adresse stimmt, und dispose auch nur ein mal aufgerufen wird? ...
    (de.comp.lang.pascal)
  • Re: Richtige Zerstörung von eigenen Objekten
    ... > das ich direkt keine Speicher freigeben kann. ... Die Finalize-Methode ist nicht für dich vorgesehen, ... Wenn auf deiner Festplatte 2 GB freier Platz sind, dein Programm 1 GB belegt ... Dispose auf, falls es noch nicht aufgerufen wurde. ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Destruktor, Dispose und Strams =?ISO-8859-1?Q?schlie=DFen?=
    ... Das bedeutet, Du weißt ganz genau wann diese aufgerufen werden - nämlich dann, wenn der Speicher freigeben wird. ... Dies macht man sich in C++ zunutze, um neben dem Speicher auch andere Ressourcen, wie z.B. Datei Handles freizugeben. ... Dispose sollte _sofort_ aufgerufen werden, wenn das Objekt nicht mehr benötigt wird. ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • RE: Probleme beim Freigeben von Speicher - Implementieren von Dispose
    ... Aufruf von Dispose und manuelles Anstossen ... nur ein Panel, das auf der Form liegt, das Formular selber bleibt ... von mir programmierten UserControls aufgerufen werden. ... der Speicher nicht frei gegeben. ...
    (microsoft.public.de.german.entwickler.dotnet.framework)
  • Re: Speicherfresser und ihn finden ...
    ... Datenbank geholt werden und diese in einem Grid angezeigt werden. ... Speicher zu entfernen. ... lange Hierarchieketten von Objekten ohne Dispose hast, ...
    (microsoft.public.de.german.entwickler.dotnet.vb)