Asocjacja klas, błąd ochrony pamięci

0

Witam

dawno nie programowałem i nie mogę znaleźć błędu i pojąć co robię źle...

kod jest trochę większy i klasy są w oddzielnych plikach ale uprościłem by pokazać konkretny problem.

Wyrzuca błąd ochrony pamięci na lini : a->wsk->showX();

#include <iostream>
using namespace std;

class B
{
    int x;

    public :
    B()
    {
        x = 0;
    }
    ~B() {}

    void showX()
    {
        cout << "X : " << x;
    }
};

class A
{
    public :
    A()
    {
        wsk = new B;
    }
    ~A() {}

    B *wsk;
};


int main()
{
    A *a;

    a->wsk->showX();

    cin.ignore();

    delete a;

    return 0;
}
0

Na co Twoim zdaniem wskazuje a? Bo moim na jakiś losowy obszar pamięci.

0

Oczywiście najciemniej pod latarnia :)

Obiekt a był tworzony na początku na stosie, później zmieniłem na wskaźnik i zapomniałem całkiem o new :) Nawet przy robieniu przykładu nie zwróciłem uwagi.

na prawdę lama ze mnie.

Dzięki

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