Ich weiß, dass es Abschnitte wie Stack, Heap, Code und Daten gibt. Stack/Heap verwenden sie denselben Speicherbereich wie sie unabhängig voneinander wachsen können? Was ist dieser Codeabschnitt? Wenn ich eine Funktion habe, ist das ein Teil des Stacks oder der Code-Sektion? Was ist dieses initialisierte/nicht initialisierte Datensegment?Wie ist das Speicherlayout eines C/C++ Programms?
Gibt es einen schreibgeschützten Speicherbereich? Wenn ich eine const-Variable habe, ist es tatsächlich so, dass der Compiler einen Speicherbereich als schreibgeschützt markiert oder ihn in einen schreibgeschützten Speicherbereich legt.
Wo werden statische Daten gespeichert? Wo werden globale Daten gespeichert?
Alle guten Referenzen/Artikel für die gleichen?
Ich dachte, die Speicherbereiche und das Layout sind OS-unabhängig und es hat mehr mit Compiler zu tun. Nicht Stack, Heap, Code, Daten [initialisiert, nicht initialisiert] Segment in allen Betriebssystemen auftreten? Wenn es statische Daten gibt, was passiert, hat der Compiler verstanden, dass es statisch ist, was als nächstes, was wird es tun? Es ist der Compiler, der das Programm verwaltet und es sollte wissen, was zu tun ist, richtig? Alle Compiler sollten nicht gemeinsame Standards befolgen?
+1 für die Neugier und den Enthusiasmus - aber Sie würden erheblich die Chancen verbessern, konkrete Antworten zu bekommen, wenn Sie es in einzelne Fragen aufteilen würden. –
Es wäre einfacher, Ihre Frage zu beantworten, wenn wir verstanden haben, warum Sie wissen wollen und (weil es sehr plattform-/kompilerspezifisch ist), auf welche Plattform Sie abzielen. Obwohl die Antwort auf diese Fragen nicht allgemeingültig für einen allgemeinen C++ - Programmierer ist (mit Ausnahmen wie Compiler-/Gerätetreiber-Autoren), ist die Lebensdauer eines Objekts und wie sich die verschiedenen Objekttypen auf die Lebensdauer auswirken, wichtiger. –