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;
} 展开
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;
} 展开
3个回答
展开全部
malloc函数向系统申请了一段空间!并说我要用指针p指向它,然后用p调用结构提中的值赋值,返回p指针,(这里必须返回,否则子函数结束,回到主函数不知倒p是谁!)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
struct Student *p=(struct Student *)malloc(sizeof(struct Student)); 这条语句已经很明白了。
struct Student *p= 看看这里,p指向了malloc分配的空间。
struct Student *p= 看看这里,p指向了malloc分配的空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询