如何将一个数组指向另一个数组

时间:2018-02-15 04:27:09

标签: c++

我在一个类中有两个数组,两个数组都有不同的大小。我的目标是使用指针将第二个数组(nArray)复制到第一个数组(_theArray)。下面我已经在类中包含了函数的代码,以及main中用于测试swap的函数。

我编写了下面的代码,我尝试使用指针p(int * p)将第一个数组指向第二个数组。

void easyArray::resize(unsigned int newSize)
{
    // created new dynamic array
    int * nArray = new int[newSize];

    // init the new array
    for (int i = 0; i < newSize; i++) {
        nArray[i] = 0;
        cout << nArray[i] << " ";
    }
    if (newSize >= _size) {
        for (int i = 0; i < _size; i++) {
            nArray[i] = _theArray[i]; 
        }
    } else {
        cout << "not enough room" << endl;
    }

    destroy(); //deletes old array

    int *p = _theArray; //points old to new array (?)
    p = nArray; //sets old array = to new array (?)

}

在main中:

void testResize()
{
    easyArray a(5); 

    for(int i = 0; i < a.size(); i++) {
        a[i] = i + 100; 
    }

    a.resize(10); 

    a[9] = 99; 

    cout << "TEST RESIZE: " << a << endl << endl; 
}

感谢任何帮助

目前我运行时遇到错误:

  

Debug Assertion失败!

     

表达式:_CrtIsValiedHeadPointer(块)

1 个答案:

答案 0 :(得分:0)

假设_theArray是一个类成员变量,您可以在调用_theArray = nArray后执行destroy()并删除涉及p的最后两行。