Wskaźnik globalny na zmienną lokalną

0

Witam, dlaczego w poniższym programie można wypisać zawartość wskaźnika? Zmienna m nie zostaje zniszczona wraz z końcem funkcji?

 #include <iostream>

using namespace::std;

int * wsk;

void fun(int i)
{
    if(i==10)
        return;

    i++;

    int m=5;

    fun(i);

    wsk=&m;
}

int main()
{
    fun(1);
    cout << wsk;
}
1

Zmienna zostaje zniszczona, ale wskaźnik jest globalny. Próba jego dereferencji to UB.

1 użytkowników online, w tym zalogowanych: 0, gości: 1