C++初学者 程序读不懂? 求教
C++菜鸟 程序读不懂? 求教?
void Push(polygon * & head, int n)
{
polygon * newNode = new polygon;
newNode = new polygon;
newNode->next = NULL;
newNode->x = new int[n];
newNode->y = new int[n];
newNode->n = n;
for(int i = 0; i<= n-1; i++){
cout<<"请输入多边形的各个顶点的x, y坐标, 坐标值之间用逗号隔开: ";
cin>>newNode->x[i]>>newNode->y[i];
}
newNode->next = head;
head = newNode;
}
polygon * newNode = new polygon;
这句定义了一个 多边形的结构体的指针并动态分配了一个空间
为啥下一句 newNode = new polygon ; 又 动态分配了一次??? 什么意思呀?
------解决方案--------------------
polygon * newNode = new polygon;
这时候创建一个polygon对象,并对newNode 初始化。
newNode = new polygon;
创建了另一个polygon对象,并对newNode 赋值。这时候指针newNode 指向了后一次创建的对象。
------解决方案--------------------
你在哪里搞的代码呀,那句明显多出来的呀,那样搞会导致内存泄漏的,删掉好啦。
void Push(polygon * & head, int n)
{
polygon * newNode = new polygon;
newNode = new polygon;
newNode->next = NULL;
newNode->x = new int[n];
newNode->y = new int[n];
newNode->n = n;
for(int i = 0; i<= n-1; i++){
cout<<"请输入多边形的各个顶点的x, y坐标, 坐标值之间用逗号隔开: ";
cin>>newNode->x[i]>>newNode->y[i];
}
newNode->next = head;
head = newNode;
}
polygon * newNode = new polygon;
这句定义了一个 多边形的结构体的指针并动态分配了一个空间
为啥下一句 newNode = new polygon ; 又 动态分配了一次??? 什么意思呀?
------解决方案--------------------
polygon * newNode = new polygon;
这时候创建一个polygon对象,并对newNode 初始化。
newNode = new polygon;
创建了另一个polygon对象,并对newNode 赋值。这时候指针newNode 指向了后一次创建的对象。
------解决方案--------------------
你在哪里搞的代码呀,那句明显多出来的呀,那样搞会导致内存泄漏的,删掉好啦。