template<class T, int size>
void CStack<T, size>::extend_space(int length) {
T* temp_buf = new T[m_nSize+ length];
memcpy(temp_buf, m_pBuf, sizeof(T)* m_nSize);
m_nSize += length;
delete []m_pBuf;
m_pBuf = temp_buf;
}
报错:
0x00ABA8B1 处(位于 homewrok5.exe 中)引发的异常: 0xC0000005: 写入位置 0xDDDDDDDD 时发生访问冲突。
解决方法:一个元素一个元素复制过去
template<class T, int size>
void CStack<T, size>::extend_space(int length) {
T* temp_buf = new T[m_nSize+ length];
for (int i = 0; i < m_nSize; i++)
temp_buf[i] = m_pBuf[i];
m_nSize += length;
delete []m_pBuf;
m_pBuf = temp_buf;
}
暂时没有明白出错原因!!!
版权声明:本文为qq_40606107原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。