テンプレート クラスを作成しましたが、動作しますが、何らかの理由で動的割り当てに問題があります。配列の初期の長さ: 古い 2 新しい 4. 最初に機能します (古いポイントが新しい (したがって、現在は彼のサイズ 4)、現在、新しいサイズは 8 です) が、次のラウンドでは - で爆発しdelete [] temp;
ますヒープの問題。何か案は?ありがとう
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];
}
}