C++ 我的动态数组模板类正在做一些奇怪的事情

C++ 我的动态数组模板类正在做一些奇怪的事情,c++,string,class,templates,memory,C++,String,Class,Templates,Memory,我在处理字符串时遇到问题。每当我尝试字符串时,都会得到一个可爱的小错误代码: Unhandled exception at 0x77e815de in arraytest.exe: 0xC0000005: Access violation reading location 0xabababab. arraytest.exe中0x77e815de处未处理的异常:0xC0000005: 访问冲突读取位置0xabababab。 它可以很好地处理int、double和char。我还尝试了完全相同的测试

我在处理字符串时遇到问题。每当我尝试字符串时,都会得到一个可爱的小错误代码:

Unhandled exception at 0x77e815de in arraytest.exe: 0xC0000005: Access violation reading location 0xabababab. arraytest.exe中0x77e815de处未处理的异常:0xC0000005: 访问冲突读取位置0xabababab。
它可以很好地处理int、double和char。我还尝试了完全相同的测试字符串(字母表)作为字符*,它也做得很好。它只是吐在琴弦上,原因我不太明白。我真的不知道下一步该怎么办。有什么建议吗?

您在
push_back

template<class type>
void DynamicArray<type>::push_back(type newValue)
{
        ++_size;   // <=== **

        if (_size > _capacity) // If size larger than capacity
        {
                _capacity *= CAPACITY_MULT; // double capacity
                type* tempArray = new type[_capacity];// Create temporary array with new capacity
                // Copy array values into temporary array

                for (int i = 0; i < _size; i++)    // <=== **
                {
                        tempArray[i] = dynArray[i];
                }
                // Delete dynArray
                delete[] dynArray;
                // Insert new value at end of temporary array
                // Set dynArray to temporary array
                dynArray = tempArray;
        }

        dynArray[_size - 1] = newValue;
}
模板
void DynamicArray::push_back(键入newValue)
{
++_大小;//\u容量)//如果大小大于容量
{
_容量*=容量\u MULT;//容量加倍
type*tempArray=new type[_capacity];//使用新容量创建临时数组
//将数组值复制到临时数组中

对于(int i=0;i<\u size;i++)/p>您在
push\u back

template<class type>
void DynamicArray<type>::push_back(type newValue)
{
        ++_size;   // <=== **

        if (_size > _capacity) // If size larger than capacity
        {
                _capacity *= CAPACITY_MULT; // double capacity
                type* tempArray = new type[_capacity];// Create temporary array with new capacity
                // Copy array values into temporary array

                for (int i = 0; i < _size; i++)    // <=== **
                {
                        tempArray[i] = dynArray[i];
                }
                // Delete dynArray
                delete[] dynArray;
                // Insert new value at end of temporary array
                // Set dynArray to temporary array
                dynArray = tempArray;
        }

        dynArray[_size - 1] = newValue;
}
模板
void DynamicArray::push_back(键入newValue)
{
++_大小;//\u容量)//如果大小大于容量
{
_容量*=容量\u MULT;//容量加倍
type*tempArray=new type[_capacity];//使用新容量创建临时数组
//将数组值复制到临时数组中

对于(int i=0;i<\u size;i++)//欢迎使用SO,一对指针:1)发布问题中的所有相关代码,不支持指向代码转储的外部链接。2)请阅读。欢迎使用SO,一对指针:1)发布问题中的所有相关代码,不支持指向代码转储的外部链接。2)请阅读。