Что происходит, когда переменная выходит из области видимости?

В большинстве управляемых языков (т. Е. С GC) локальные переменные, выходящие за рамки видимости, недоступны и имеют более высокий приоритет GC (следовательно, они 'Я буду освобожден первым).

Теперь, C не является управляемым языком, что происходит с переменными, которые выходят за рамки этой области?

Я создал небольшой тест-кейс в C: I '

#include 
int main(void){
    int *ptr;

    {
        // New scope
        int tmp = 17;
        ptr = &tmp; // Just to see if the memory is cleared
    }

    //printf("tmp = %d", tmp); // Compile-time error (as expected)
    printf("ptr = %d\n", *ptr);

    return 0;
}

м, используя GCC 4.7.3 для компиляции, и программа выше печатает17, Зачем? И когда / при каких обстоятельствах будут освобождены локальные переменные?

Ответы на вопрос(3)

Ваш ответ на вопрос