小编Pyt*_*enx的帖子

使用复制构造函数 C++ 时出现分段错误

一切似乎都可以正常复制,但是当我调用 时array2.print(),它显示分段错误。我究竟做错了什么?

#include <iostream>
#include <initializer_list>


template <typename T>
class DynamicArray
{
private:
    const int GROWTH_FACTOR = 2;
    const int INITIAL_CAPACITY = 5;

    T *m_array;
    int m_capacity; // Capacity of the array
    int m_size; // Number of added elements

public:
    DynamicArray(std::initializer_list<T> elements)
        : m_size(elements.size()) 
        , m_capacity(elements.size() * 2)
    {
        m_array = new T[m_capacity];
        std::copy(elements.begin(), elements.end(), m_array);
    }

    DynamicArray()
        : m_size(0)
        , m_capacity(INITIAL_CAPACITY)
    {
        m_array = new T[m_capacity];
    }

    ~DynamicArray()
    {
        delete[] m_array;
    }

    DynamicArray(const DynamicArray& other)
        : GROWTH_FACTOR(other.GROWTH_FACTOR) …
Run Code Online (Sandbox Code Playgroud)

c++ segmentation-fault dynamic-arrays

1
推荐指数
1
解决办法
104
查看次数

标签 统计

c++ ×1

dynamic-arrays ×1

segmentation-fault ×1