C语言中关于malloc函数的理解 求高手解

我有一点不理解这个函数structStudent*CreateStudent(void){structStudent*p=(structStudent*)malloc(s... 我有一点不理解这个函数
struct Student *CreateStudent(void)
{
struct Student *p=(struct Student *)malloc(sizeof(struct Student));
p->sid=99;
p->age=88;
return p;
}
这个函数中对指针变量p进行操作 (让它指向struct Student *)类型 长度为struct Student的长度)让后给结构体成员赋值。。。
我以前都是认为指针变量赋值的应该是另外一个变量的地址。通过指针来修改原来变量的值
但是这里 的指针p 好像没有指向,我想问这里的p的内存在计算机中怎么存储 ,p->sid, p->age怎么存储的?
这里的这个指针与 int *p=&a(一个变量的地址直接赋值给指针变量有什么区别); 谢谢
原代码
#include<stdio.h>
#include<malloc.h>
struct Student
{
int sid;
int age;

};
struct Student * CreateStudent(void);
void ShowStudent(struct Student *);
int main(void)
{
struct Student *ps;
ps=CreateStudent();
ShowStudent(ps);
return 0;
}
void ShowStudent(struct Student *pst)
{
printf("%d %d \n",pst->sid ,pst->age);
}
struct Student *CreateStudent(void)
{
struct Student *p=(struct Student *)malloc(sizeof(struct Student));
p->sid=99;
p->age=88;
return p;
}
展开
 我来答
百度网友52d333f
2013-08-04 · 超过12用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:17.6万
展开全部
p是指针,所以要p->sid这样引用结构体里面的成员
malloc这个函数在内存的堆区动态申请一块区间,用于存放两个整形数据p->sid,p->age,这两个数据和普通的整型的存放是相同的
pingshunbobo
2013-08-04 · 超过22用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:63.8万
展开全部
malloc函数向系统申请了一段空间!并说我要用指针p指向它,然后用p调用结构提中的值赋值,返回p指针,(这里必须返回,否则子函数结束,回到主函数不知倒p是谁!)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
很想好好学习
2013-08-04
知道答主
回答量:14
采纳率:0%
帮助的人:4.3万
展开全部
struct Student *p=(struct Student *)malloc(sizeof(struct Student)); 这条语句已经很明白了。

struct Student *p= 看看这里,p指向了malloc分配的空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式