我正在尝试创建一个模板化函数,该函数将在数组末尾插入一个值,但是无论我尝试做什么,我都会遇到段错误。任何建议将不胜感激。
template <typename T>
void ArrayList<T>::insert_back(const T& x)
{
if(m_size == m_max)
{
m_max = m_max*2; //resize array
T* P = new T[m_max];
for(int y = 0; y < m_size; y++) //copying array
{
P[y] = m_data[y];
}
delete[] m_data; //copy done delete
m_data = P;
P[m_size] = x; //gdb segfault -- caused by accessing P[m_size]
m_size ++;
}
else // no resizing
{
m_data[m_size] = x;
m_size++;
}
}