Hello,
Datentyp ist ja für das Allozieren und Freigeben von Speicher egal - malloc übergibst Du ja auch nur die Größe, der Cast davor dient nur der Klarheit.
Das ist mMn genau die Stelle, an der der Übergang von klassischer Programmierung, die dann zur Not auch noch in Assembler stattfinden könnte zur OOP stattdfindet. Die Hochstprache schaltet als Zwischenstufe eine Typdefinition (Record, Struct) dazwischen.
Assembler Speicher wird blockweise allokiert, Du musst selber wissen,
wie der Block eingeteilt ist. Der Offset ist hier das Zauberwort
Hochsprache Speicher wird pro Typelement allokiert
Du hast bereits eine fertige Dereferenzierung für jedes
Element der Struktur als Name in der Hochsprache
Der Offset wird durch den Namen symbolisiert, beim Einfügen von Elementen
kümmert sich die IDE/Compiler um die Aktualisierung des Offsets
Die Struktur liegt aber immer noch als geschlossener Speicherblock vor
? dazwischen ist noch was...
OOP Speicher wird für ein Objekt (Instanz einer Klasse) alloziiert
Die Umsetzung der Allokation für die Elemente (Member-Variablen)
kann durch das Objekt selber geschehen.
Es ist also nicht mehr notwendig, dass alle Elemente des Objektes im Speicher
in einer geschlossenen Form vorliegen.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg