Ошибка при попытке чтения поля объекта из метода класса

Упрощенно мой класс выглядит так:

class Map
{
private:
    int width;
    int height
public:
    Map(int width, int height)
    {
        this->width = width;
        this->height = height;
    }
    int getWidth()
    {
        return width;
    }
    int getHeight()
    {
        return height;
    }
}

Остальные поля и методы я опустил за ненадобностью в примере.

Объект я инициализировал в основной форме WinForms следующим образом:

private:
    Map* map = new Map(50, 50);

По другому инициализировать не получалось из-за ошибки "Член класса управляемый не может относиться к типу класса неуправляемый" (при инициализации Map* map = new Map(50, 50);)

После этого я вызываю другой, не приведенный здесь метод класса Map, в котором нужно значение поля width, для объекта map и получаю следующую ошибку: System.AccessViolationException: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена."

Подскажите, пожалуйста, с чем это может быть связано. Моя единственная догадка, что что-то не так с инициализацией, но я без понятия, как это исправить.


Ответы (0 шт):