永发信息网

C语言结构体中的指针内存分配

答案:3  悬赏:10  手机版
解决时间 2021-02-12 14:46
  • 提问者网友:沉默菋噵
  • 2021-02-11 16:45
struct goods
{
int time, bf;
double value;
char name[40];
goods *lc, *rc;
};

若goods *p = null 和 goods head,*p = &head; 这两个语句有区别么? (后面的函数只用到p指针,head仅在这里出现过)
其中 p->lc 这个指针分配了内存没有?
最佳答案
  • 五星知识达人网友:掌灯师
  • 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分配内存空间
全部回答
  • 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的话就会提示出错。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯