我在一个类中有两个数组,两个数组都有不同的大小。我的目标是使用指针将第二个数组(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(块)
答案 0 :(得分:0)
假设_theArray
是一个类成员变量,您可以在调用_theArray = nArray
后执行destroy()
并删除涉及p
的最后两行。