再定义一个指针指向第一个元素,应该更简单
在实例化的时候写:Coordinate * q = p; 定义一个指针指向第一个元素,赋值的时候用户 p 赋值,遍历的时候有 q 遍历,则之后p指向第3个元素,q指向第一个元素,再delete 【】q 不就行了吗,在vs2017上运行,没有报错
#include <iostream>
#include "Coordinate.h"
using namespace std;
/*
定义Coordinate 类
数据成员:m_iX 和 m_iY
分别从堆中和栈中实例化长度为3的数组
给数组的元素赋值
遍历两个数组
*/
int main(void)
{
Coordinate * p = new Coordinate[3];
Coordinate * q = p;
p[0].m_iX = 1;
p->m_iY = 2;
p++;
p->m_iX = 3;
p->m_iY = 4;
p++;
p->m_iX = 5;
p->m_iY = 6;
for (int i = 0; i < 3; i++)
{
cout << q[i].m_iX << " " << q[i].m_iY << endl;
}
delete[]q;
q = NULL;
p = NULL;
}