-
C zeiger /stack
hi,
folgender code:
Code:
int testFunk(char *p){
/*mach was mit p */
zB strcpy etc
return 0;
}
main(){
testFunk("blablastring")
}
hier wird der beim aufruf der fkt. der speicher fuer den Zeiger auf dem stack angelegt?
Und nach ablauf der funktion automatisch wieder freigegeben?
und um das kuemmert sich alles der compiler?
Kann man somit sagen dass jeder speicher der nicht ueber malloc angefordert wird auf dem stack liegt und vom compiler verwaltet wird?
-
...Kann man somit sagen dass jeder speicher der nicht ueber malloc angefordert wird auf dem stack liegt und vom compiler verwaltet wird?...
naja, kommt drauf an. es gibt ja auch noch den globalen speicher. dort werden konstanten und globale variablen abgelegt.
die übergabe von paramteren und die lokalen variablen der funktionen sind natürlich auf dem stack.
du kannst mit alloca auch auf dem stack dynamisch variablen anlegen...
greetz