Retorna um ponteiro que aponta para uma variável local [duplicate]
Esta pergunta já tem uma resposta aqui:
Como acessar uma variável local de uma função diferente usando ponteiros? 9 respostasNão sei por que isso funciona. Como x é uma variável local, pensei em receber um erro ao tentar retorná-lo. No entanto, o primeiro printf funciona bem, mas depois imprime 0. Alguém pode explicar o que está acontecendo aqui?
#include <stdio.h>
int* func1() {
int x = 123123;
int *y = &x;
return y;
}
int main()
{
int* c = func1();
printf("%d\n", *c); // output: 123123
printf("%d\n", *c); // output: 0
return 0;
}