首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++初学者 程序读不懂? 求教

2012-08-10 
C++菜鸟 程序读不懂? 求教?void Push(polygon * & head, int n){polygon * newNode new polygonnewNode

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 指向了后一次创建的对象。
[解决办法]
你在哪里搞的代码呀,那句明显多出来的呀,那样搞会导致内存泄漏的,删掉好啦。

热点排行