课程
/后端开发
/C
/Linux C语言结构体
p2=p1=(struct weapon*)malloc(sizeof(struct weapon));
2016-09-28
源自:Linux C语言结构体 5-2
正在回答
同一块地址,p1=p2是为了让p2保存p1的内容,好可以给p1赋予新的内存地址,而保证上一块地址不会丢失
我的理解对于这串指令是:(struct weapon*)malloc(sizeof(struct weapon)),它是一个结构体指针 函数,我们都知道指针的本质是地址,同时malloc的作用是获取内存,做个比喻的话,房子的门牌号和大小都确定下来了。p1,p2是指针变量,他们都指向房子的地址。记得老师说,p1是指向当前开辟的节点的地址,p2是指向上一个开辟节点的地址,那么当最开始的时候就只有一个地址,那么p1,p2都只指向第一个地址。这是我对这段代码的理解,如果有误,请大家指正,xiexie
qtw1998
我同意后者,p1和p2同时保留了第一个申请的存储空间首地址。
为什么不是
p1=(struct weapon*)malloc(sizeof(struct weapon));
p2=的意义何在,它有什么用啊
举报
C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来
3 回答p2是一个只分配过一次内存的存储空间,每次都把p1往p2里写不会覆盖吗?
2 回答为什么要让p1赋给p2?
1 回答p1,p2本身不就是地址吗?为什么还要取它们的地址来scanf赋值?
2 回答我觉得循环中的p2->next应该等于p1->next 为什么会是p2->next=p1有哪位大神看懂了能帮我解释一下吗?
1 回答p1=p2=(struct weapon*)malloc(sizeof(struct weapon));//可以把p2=去掉吗,p2=在这里有什么意义吗.