Return einen Zeiger, der auf eine lokale Variable [duplicate] zeigt
Diese Frage hat hier bereits eine Antwort:
Wie kann man mit Zeigern von einer anderen Funktion auf eine lokale Variable zugreifen? 9 answersIch weiß nicht warum das funktioniert. Da x eine lokale Variable ist, dachte ich, ich würde eine Fehlermeldung erhalten, wenn ich versuche, sie zurückzugeben. Der erste Ausdruck funktioniert jedoch einwandfrei, gibt dann aber nur den Wert 0 aus. Kann mir jemand erklären, was hier vor sich geht?
#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;
}