我写了一个模板类,它可以工作——但由于某种原因,我的动态分配存在问题。数组的初始长度:旧 2 新 4。它第一次工作(新点上的旧点(所以现在他的大小为 4)现在,新的大小为 8)但在下一轮 - 它在delete [] temp;
with堆问题。有任何想法吗?谢谢
template <class T>
void Log<T>::Add(T item)
{
// If array is full
if(m_oldSize == m_oldCount)
{
// prepare array switch
T* temp = m_old;
// Point to new array
m_old = m_new;
m_oldSize = m_newSize;
m_newSize *= ARRAY_MUL;
m_newCount = DEFAULT_COUNT;
//delete old
delete [] temp;
temp = NULL;
//create new array
m_new = new T[m_newSize];
}
// Add item and update new array
m_old[m_oldCount++] = item;
if(m_oldCount > FIRST_ROUND)
{
m_new[m_newCount++]= m_old[m_newCount];
m_new[m_newCount++]= m_old[m_newCount];
}
}