Devuelve un puntero que apunta a una variable local [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Cómo acceder a una variable local desde una función diferente usando punteros? 9 respuestasNo sé por qué funciona esto. Dado que x es una variable local, pensé que obtendría un error cuando intento devolverlo. Sin embargo, la primera impresión funciona bien, pero luego imprime 0. ¿Alguien puede explicar lo que está pasando aquí?
#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;
}