ähnliche Art von Frage bereits gestellt: Stack Overflow, local pointer
Es gibt Somethings in C, die für Compiler-Anbieter verlassen wird in der Art und Weise zu implementieren, sie mögen. Das Verhalten solcher Dinge wird nicht von den Machern definiert. Compiler-Anbieter können solche Dinge so implementieren, wie sie sich einfach und schneller fühlen. Dies fällt in die gleiche Kategorie. Das Verhalten ist nicht definiert und hängt vom verwendeten Compiler ab.
Eine weitere Sache ist die Verwendung von mehr als einem Vorinkrement (Vordekrement) und/oder Nachinkrement (Nachdekrement). Wenn derselbe Code auf verschiedenen Compilern ausgeführt wird, erhalten Sie möglicherweise eine andere Ausgabe.
warum versuchst du es nicht? – slawekwin
int * foo() { int lokal = 42; int * ptr = &local; Rückkehr ptr; } Int Haupt() { Rückkehr * (foo()); } –
Dies sollte offensichtlich sein: Die Lebensdauer einer lokalen Variablen ist der Funktionsaufruf. –