Wskaźnik globalny na zmienną lokalną

Wskaźnik globalny na zmienną lokalną
K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

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

Kopiuj
 #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;
}
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.