Is the memory for a function's local variables always freed once the function exits?
Let's say I have a function that sets a number of local variables like this:
Code:
void test_func(){
long a = 1; //4 bytes
long b = 2; //4 bytes
long c = 3; //4 bytes
long d = 4; //4 bytes
char text[] = "Hello, this is some text!"; //26 bytes
//Total memory usage: 42 bytes
}
Will the memory used by the function always be freed once it ends? Are there any circumstances under which the memory wouldn't be freed upon exit?