Mittwoch, 13. Mai 2009
Speicherlayout - Lösung
Was bedeuten die Ausgaben des Programms bzw. welchen Zweck verfolgt dieses Programm?
Die Speicheradressen und die Inhalte an diesen Adressen werden ausgegeben. Es zeigt, wie der Speicher für Variable reserviert wird.
![]() |
| Von Programmieren mit Harald R. Haberstroh |
Man sieht, dass int Variable jeweils 4 Bytes groß sind (bei 32 Bit rechnern).
Speicher wird in der Reihenfolge der Deklaration von oben nach unten angelegt, d.h. beginnend mit höheren Speicheradressen. Bei Arrays ist der niedrigste Index jedoch an der niedrigsten Stelle des entsprechenden Speicherbereichs.
Es ist extrem wichtig diese Speicherorganisation zu verstehen, da viele Programmierfehler und Sicherheitsprobleme (Einbrüche in Web-Server, Verbreitung von Würmern und Viren) auf diesem Speicherlayout basieren.
Was bedeuten die Argumente von main ?
Die Argumente entsprechen dem from sys import argv von Python. Da in C Arrays keine Zusatzinformationen über Länge (Anzahl) enthalten, wird die Anzahl der Elemente im Parameter argc übergeben. argc enthält die Anzahl der Programmparameter (incl. Programmname), argv ist ein Array mit den Argumenten.
Abonnieren Kommentare [Atom]

Kommentar veröffentlichen