Malloc wird die Größe von "node" dynamisch zuweisen.
Knoten ist eine Struktur und die Größe jeder Struktur hängt von der Größe jedes Elements innerhalb der Struktur ab.
In diesem Fall wird die Größe des Knotens sein: Größe von int + Größe von struct Node * (Wenn das Ergebnis nicht Vielfaches von 2 ist, wird es für die Architektur Gründen aufgefüllt werden) Ihr Gerät verfügt über eine Architektur 2 Bytes, und aus diesem Grund kann die Größe der Strukturen nur 2, 4, 6, 8 usw. sein.
Die Größe von int hängt von dem Ziel ab, an dem Sie arbeiten. Da Ihre Architektur 16 Bits hat, ist die Größe von int 2 Bytes.
Über. die Größe von struct Node *, Sie müssen wissen, dass EVERY Pointer-Datentypen genau die gleiche Größe haben, es spielt keine Rolle, auf welchen Datentyp sie verweisen. Und diese Größe hängt auch von der Architektur ab. Auch hier ist Ihre Architektur 16 Bit groß und deshalb beträgt die Größe des Strukturknotens * 2 Byte.
Größe von int = 2.
Größe von struct node * = 2
Summe von malloc zugeordneten Speicher = 2 + 2 = 4
Schreiben Sie den Code und überprüfen Sie. –
Die Antwort hängt sehr vom Ziel ab. Warum willst du das statisch wissen? –
2 Bytes für einen Zeiger ?! Erstellen Sie eine ausführbare 16-Bit-Datei? Hatte gerade Rückblenden von 1995. – itsme86