heap&stack,compiler ablauf

lionq

Grünschnabel
hallo nochmal
kann jemand einfach und kurz erklären,damit ich kapiere...
1-der Weg vom Quelltext zum ausführbaren Programm...
2-die verschiedenen Speicherbereiche eines laufenden Programms....
zu 1 ich weiß eigentlich wie die schritte sind c datei wird Objektdatei danach wird ausführbares programm ..(compiler-lader...)
zu 2 es gibt soweit ich weiß 2 typenvon speichern heap und stack

mfg
 
Zuletzt bearbeitet:
Hi

Am Anfang gibts deinen Quelltext als c-Datei.

Der Compiler macht daraus eine Objektdatei.
Die ist im Prinzip schon fertige Maschiensprache.
Bei einem Programm mit mehreren c-Dateien gibts auch mehrere Objektdateien.

Der Linker ändert die dann noch soweit ab, dass bekannt ist,
wo Funktionen wie printf her kommen (die du ja nicht selbst programmiert hast)
und vereint alle Objektdateien in eine Exe.


Stack: Da kommen ganz normale Variablen wie das i hier hin
C++:
int main()
{
    int i;
    ...
}

Heap: Da sind die Sachen, die mit malloc (oder new) gemacht werden.
 
danke für deine Antwort
(heap)speicher kann man im laufe des Programms immer reservieren,muss man dann die speicherplätze die man nicht braucht wieder freigeben oder geschieht das automatisch.Außerdem wie groß sind die Speichern?heap vs stack
 
Genau, von malloc reservierte Speicher muss man später mit free wieder freigeben.

Stackgröße: Genauer Standardwert hängt uA. vom Compiler ab.
Kann aber verändert werden.

Heap: Hat keine wirkliche Beschränkung.
Hängt davon ab, wieviel Speicher man hat usw.

Bitte Netiquette 15 beachten.
 
Zurück