struct goods
{
int time, bf;
double value;
char name[40];
goods *lc, *rc;
};
若goods *p = null 和 goods head,*p = &head; 这两个语句有区别么? (后面的函数只用到p指针,head仅在这里出现过)
其中 p->lc 这个指针分配了内存没有?
C语言结构体中的指针内存分配
答案:3 悬赏:10 手机版
解决时间 2021-02-12 14:46
- 提问者网友:沉默菋噵
- 2021-02-11 16:45
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-11 17:31
1. 这两句话区别很大
2. googs head; 定义了head对象,这里head是在栈空间上的变量,并且有相应的内存空间
3. p = &head;就是领指针p指向了head的内存空间,以后就可以用p代替head,进行相关的操作了
4. p = NULL,说明p不指向任何内存空间
5. p->lc在这里还没有为lc分配内存空间
2. googs head; 定义了head对象,这里head是在栈空间上的变量,并且有相应的内存空间
3. p = &head;就是领指针p指向了head的内存空间,以后就可以用p代替head,进行相关的操作了
4. p = NULL,说明p不指向任何内存空间
5. p->lc在这里还没有为lc分配内存空间
全部回答
- 1楼网友:雾月
- 2021-02-11 19:34
1. 这两句话区别很大
2. googs head; 定义了head对象,这里head是在栈空间上的变量,并且有相应的内存空间
3. p = &head;就是领指针p指向了head的内存空间,以后就可以用p代替head,进行相关的操作了
4. p = null,说明p不指向任何内存空间
5. p->lc在这里还没有为lc分配内存空间
- 2楼网友:琴狂剑也妄
- 2021-02-11 17:59
goods head 是定义一个结构体 (分配内存)
goods *p是一个指针
p=&head; 把head结构体的地址给p指针。即p指向head
p->lc 是指head结构体里面的lc
p=null的话 就是什么都不指向。。所以如果有p->lc的话就会提示出错。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯