求助大神,是不是数组赋值的问题
#include<iostream>
#include<stdlib.h>
#include "demo.h"
using namespace std;
int main()
{
Coordinate Coor[3];//从栈中实例化对象数组
Coor[0].m_iX=10;
Coor[0].m_iY=20;
Coor[1].m_iX=11;
Coor[1].m_iY=21;
Coor[2].m_iX=12;
Coor[2].m_iY=22;
Coordinate *p=new Coordinate[3];
p->m_iX=30;//若没有写Coordinate,则默认的是访问对象数组的第一个对象
p->m_iY=40;//另一种访问对象数组成员的方式
p++;//指针指向数组中的第二个对象
p[0].m_iX=31;//此时的p[0]指的是第二个对象
p[0].m_iY=41;
p[1].m_iX=32;//指向数组中的第三个对象
p++;
p[0].m_iY=42;
/*遍历数组中的对象(打印出数组中的每一个成员)*/
for(int i=0;i<3;i++)
{
cout<<"Coor_x: "<<Coor[i].m_iX<<endl;
cout<<"Coor_y: "<<Coor[i].m_iY<<endl;
}
for(int j=0;j<3;j++)
{
cout<<"p_x: "<<p[j].m_iX<<endl;
cout<<"p_y: "<<p[j].m_iY<<endl;
p--;//此时p已经指向了第三个数据成员,要实现遍历需依次向前指
}
p++;//p在执行完循环之后指向了一个非法的地址,故需要让p指向首元素。
delete []p;
p=NULL;
system("pause");
return 0;
}
第二个数组的运行结果如下:
p_x: 32
p_y: 42
p_x: 32
p_y: 42
p_x: 32
p_y: 42
求大神帮忙看一下是不是第二个数组赋值不正确?