Alcance de las variables locales de una función en C.

He escuchado sobre el siguiente escenario justo cuando comencé a programar en C.

"Al intentar acceder desde el exterior, una variable local de funciones generará un error (o un valor de basura). Dado que la pila se borra cuando volvemos de la función"

Pero mi ejemplo de código a continuación imprime un valor de 50. Estoy compilando el código con el último compilador de GCC.

#include <stdio.h>

int * left();

int main()
{
      int *p=left();
      printf("%d\n",*p);
      return 0;
}

int * left()
{
        int i=50;
        return &i;
}

Ilumíname sobre este tema.

¿Puedo conocer el comportamiento en C ++? ¿Es similar a c ..

Respuestas a la pregunta(8)

Su respuesta a la pregunta