首页 新闻 会员 周边

关于内存申请的问题

0
[待解决问题]
struct student
{
        char *name;
        int score;
};
int main()
{
        struct student *stu;
        stu=(struct student *)malloc(sizeof(struct student));
        stu->name=(char *)malloc(25); 
        strcpy(stu->name,"houyunliang");
        stu->score=23;
        printf("%s\n",stu->name);
}
为什么给stu申请完空间后,还要再给stu->name申请内存。
 
寻找心的巨人的主页 寻找心的巨人 | 菜鸟二级 | 园豆:203
提问于:2014-03-15 00:59
< >
分享
所有回答(2)
0

student结构体的成员是什么?是一个字符指针和一个整数,

这时候你要用这个字符指针的时候,怎么能不给他申请内存?

吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-15 16:32

那给stu申请内存干什么啊

支持(0) 反对(0) 寻找心的巨人 | 园豆:203 (菜鸟二级) | 2014-03-15 20:12

@上年的邻居: 不申请内存,你怎么用?不给STU申请内存,你能stu->score=23吗?

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-16 15:36
0

stu初始化的时候,stu->name指向的是一个空指针(0)。你可以将已存在的“char *”变量赋予stu->name,也可以重新申请一片空间,并让stu->name指向申请的这片空间。

Wind4 | 园豆:220 (菜鸟二级) | 2014-03-20 13:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册