Escopo versus tempo de vida da variável
Qual é a relação entre o escopo e o tempo de vida de uma variável? Se uma variável estiver fora do escopo, a memória dela pode ser sobrescrita por outra variável ou o espaço é reservado até que a função seja deixada.
Eu estou perguntando porque eu quero saber se o código abaixo realmente funciona, ou se pode ser que * p pode ser indefinido
foo() {
int *p;
{
int x = 5;
p = &x;
}
int y = *p;
}