定义结构体指针时,有没有同时分配存储空间
答案:2 悬赏:50 手机版
解决时间 2021-02-05 05:27
- 提问者网友:黑米和小志
- 2021-02-04 10:03
定义结构体指针时,有没有同时分配存储空间
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-02-04 10:28
定义结构体指针时,只会在栈中分配指针大小的空间给这个指针存放地址,一般也就是4个字节。你要是说的是会不会为结构体分配内存空间,那是肯定不会的,为结构体申请分配空间要用malloc或new在堆中申请,并将申请的内存首地址返回给结构体指针。
全部回答
- 1楼网友:青尢
- 2021-02-04 11:45
student=(malloc(sizeof(struct stu)));//就是这句有问题,却不知道哪里有问题,和书上的一样啊
malloc出的地址要做一个类型转换。
student = (struct stu *) malloc( sizeof( struct stu));
scanf("%ld",&student->num);//为什么这里有&,上面一行木有,有什么区别吗
上一行name是数组,数组名代表这个数组的首地址。所以已经是地址了。
而num是long型的。所以要取num的地址.
scanf("%d %d %d",&student->birthday.year,&student->birthday.month,&student->birthday.day);//这里不用&有木有关系
必须要&,&这个符号表示取变量的地址。理由和上一条差不多。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯