结构体指针在被malloc函数赋值后,p是指向malloc返回的首地址的

结构体指针在被malloc函数赋值后,p是指向malloc返回的首地址的,p就是指向一个分配好的的空间,那此时p与结构体中的变量还有联系吗?为什么还可以使用p->操作,那... 结构体指针在被malloc函数赋值后,p是指向malloc返回的首地址的,p就是指向一个分配好的的空间,那此时p与结构体中的变量还有联系吗?为什么还可以使用p->操作,那*p又是什么意思?与struct L;p=&l;指向结构体变量的指针又有什么区别?请详细说明 谢谢 展开
 我来答
黑暗边缘7b
2012-03-19 · TA获得超过225个赞
知道答主
回答量:25
采纳率:0%
帮助的人:18.9万
展开全部
malloc申请的是堆空间,把它的地址交给p,也就是p指向了这个空间,分配的时侯你会用sizeof(struct L)指定大小,使用时你会(struct L*)强转一下再给p,这样就可通过p访问这段空间了。
p->等价(*p). ;在对上分配的空间,那个变量名是没有的,只能用指针p给它赋值和访问。
用完得用free()把堆空间释放。
有问题可以追问
xtjmdw
2012-03-19 · TA获得超过278个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:241万
展开全部
p 只是指针。
开始,p指向堆内存,malloc申请的空间在堆中,需要用户明确释放即free.
struct L;这个结构体存在于栈里。
p = &l;改变p的指向,指向L内存,在栈中。
可以使用p->操作,因为定义了struct XX *p;*p就是取p指向地址的struct XX的内容。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式