首页 > 解决方案 > 无法分配类成员指针变量

问题描述

所以我只是在玩耍并创建了一个简单的类:

class C {
public:
    C() {
    }
    void assign() {
        *a = 10;
    }
    int * get() {
        return a;
    }
private:
    int *a;
};

然后我创建一个类的实例,如下所示:

    C c{};
    c.assign();

由于某种原因,方法 assign 实际上并没有被调用。

std::cout << c.get() << std::endl;

这在控制台中不返回任何内容。

标签: c++

解决方案


您通过取消引用未分配的内存导致未定义的行为,您应该将其添加到您的类

C()
{
 a=new int;
}

~C()
{
    delete a;
}

推荐阅读