我有以下方法:
void Polygon::expand() {
int newSize = max * 2;
printArray(array, current);
Point* newArray = new Point[newSize];
printArray(array, current);
for (int i = 0; i <= current; i++) {
newArray[i] = array[i];
}
delete[] this->array;
array = newArray;
max = newSize;
}
printArray
用于调试,也很简单:
void printArray(Point* array, int size) {
cout << "array\n==========" << endl;
for (int i=0; i<=size; i++) {
cout << array[i] << ": " << array[i].getX() << ", " << array[i].getY() << endl;
}
}
该方法试图扩展数组,它是 type 的类成员Point*
。奇怪的是我在运行时得到的打印:
数组
==========
(0,0): 0, 0
(1,1): 1, 1
(2,2): 2, 2
(3,3): 3, 3
数组
== ========
(0,0): 0, 0
(1,1): 1, 1
(2,2): 2, 2
(3,5.58294e-322): 3, 5.58294e-322
由于某种原因Point
,数组中的最后一个发生了变化,即使我在打印之间没有碰过它!关于什么会导致这种情况的任何想法?