其他分享
首页 > 其他分享> > c-在构造函数中动态分配新对象

c-在构造函数中动态分配新对象

作者:互联网

因此,考虑到这种简单的情况:

class A{
public:        
    A(){
        n = new int(10);
    }
    ~A(){
        delete n;
    }
    int* n;
};

int main(){
    A* a = new A();
}

因为在我进行新分配时a指针尚未完成分配,这是否会导致堆损坏(通常是问题)?

如果是这样,也禁止在堆构造函数中使用std :: vector,对吗?

谢谢.

解决方法:

您的指针已分配完毕.

新作品如下(过于简化)

>分配
>构建

所以你的情况

>分配一个
>构造A

>分配int
>构造int-初始化

>完成构造A

这将忽略涉及异常的情况.

标签:heap-corruption,c,heap-memory
来源: https://codeday.me/bug/20191012/1898946.html