Announcement

Collapse
No announcement yet.

Programm mit noch nicht erzeugtem Objekt läuft trotzdem, warum??

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programm mit noch nicht erzeugtem Objekt läuft trotzdem, warum??

    Hallo zusammen,

    ich habe gerade ein Programm geschrieben in dem ich ein eigenes Objekt der Klasse TMyObject verwende welches nur zusätzlich zum allgemeinen TObject noch das Attribut "int: Integer" besitzt.

    Wenn ich in einer Methode ein Objekt "ob: TMyObject;" definiere und es aber nicht erzeuge funktioniert folgende Zuweisung trotzdem:

    ob.int := 5;

    .. warum?

    Und warum kommt dann beim Beenden meines Programms erst eine Zugriffsfehlermeldung?

    Wäre sehr dankbar für eure Hilfe,

    MfG Sepp

  • #2
    Ein Objekt ist erst mal ein Zeiger. Dort legt TMyObject.Create einen Zeiger mit dem alloziierten Objekt ab.<br>
    ob.int funktioniert, da der Zugriff ueber einen nicht initialisierten Zeiger funktioniert. Dabei zerhaust du dir aber irgendwelche Datenstrukturen. Oft ist es die speicherverwaltung die beschaedigt wird und besonders zum Programmende hin, wenn alles freigegeben wird, wirkt sich das aus

    Comment


    • #3
      Hallo,

      &gt;... warum?

      das Betriebssystem legt nur dann sofort ein Veto ein, wenn der Zeiger auf eine 4-kByte-Speicherseite verweist, die <b>nicht</b> vom eigenen Prozess angefordert wurde. Solange ein Programm nur die eigenen Datenstrukturen zerstört, hat die CPU nichts dagegen :-

      Comment


      • #4
        Hallo,

        Danke euch beiden für die Antworten. Ich denke jetzt weiß ich so in etwa bescheid.
        <BR>!Und sorry wegen der verspäteten Rückmeldung.!

        Schönen Sonntag noch,

        mit freundlichen Grüßen Sep

        Comment

        Working...
        X