Dirty Oerti hat geschrieben:Wie wird ein Objekt im Speicher gespeichert?
In welcher Form?
Damit ich drauf zugreifen kann (per Zeiger)?
Das kommt darauf an, welchen Typ das Objekt hat. Ein Integer wird z.B. als 4 bytes gespeichert, das niedrigstwertigste zuerst (auf x86). Structs werden je nach Alignment gespeichert, das heißt
struct {
int a;
char b;
};
Wird entweder als ein 4 bytes gefolgt von einem Gespeichert, (kein Alignment), oder als 4 bytes gefolgt von einem byte, gefolgt von 3 bytes(die nicht verwendet werden) (4 byte alignment), oder manchmal sogar als 4 bytes, nochmal 4 (nicht verwendet), einem byte, und nochmals 7 byte (nicht verwendet) (8 byte alignment)
Wie die Objekte gespeichert werden, hängt vom Typ, vom Betriebssystem, vom Compiler, von den Einstellungen, von der Bibliothek, von der CPU Architektur, vom Wetter und davon, ob heute ein gerader Wochentag ist oder nicht ab.
Der ganze "Sinn" von C ist, dass du dich nicht um solche dinge "kümmern" solltest, das bedeutet dass diese dinge für dich übernommen werden. Man darf sich in C auf manche Dinge verlassen (diese stehen im Standard), manche sind aber nicht definiert.
Dirty Oerti hat geschrieben:Stells dir vor wie in C++ mit new.
new gibt eigntl nur ne Adresse zurück.
Hinter der sich ein freier Bereich verbirgt.
Das gleiche möchte ich auch tun.
Nur möchte ich nicht wie new nach freien Bereichen suchen und dann die Adresse zurückgeben. Das KANN ich nicht.
Ich weiß, wo freier Speicher ist. Ich weiß die Adresse.
Wenn du sie Weißt, wo ist dann das Problem?
Dirty Oerti hat geschrieben:Wie das mit einem einzelnen Element gehen müsste, weiß ich:
Oder geht das so nicht?
Doch eigentlich schon.
Haters gonna hate, potatoes gonna potate.