p malloc后就不是指向a了,你子函数里改的不是a变量所在地址里的东西,你把malloc那句去掉应该可以达到你想要的效果。
东胜网站建设公司创新互联,东胜网站设计制作,有大型网站制作公司丰富经验。已为东胜近1000家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的东胜做网站的公司定做!
#includestdio.h
#includestdlib.h
typedef struct Lnode
{
int data;
struct Lnode *next;
}Lnode,*LinkList;
LinkList Init()
{
LinkList L = NULL;
printf("%d ",L);
L=(LinkList)malloc(sizeof(Lnode));
printf("%d ",L);
L-next=0;
return L;
}
void main()
{
LinkList A = NULL;
printf("%d ",A);
A = Init();
}
按你说的,没有把指针返回也没有释放,那么函数返回时开辟的空间还在,但你已无法引用。
用malloc是在堆中分配的空间,用完需用自已显示释放.
采用如int
a=0的方式会在栈中分配空间,函数返回时栈指针回移,此空间仍能被其它函数使用(相当于自动释放)
标题名称:c语言在子函数中开辟空间 c语言子函数怎么用
URL链接:https://www.cdcxhl.com/article20/hghgjo.html
成都网站建设公司_创新互联,为您提供虚拟主机、网站内链、外贸网站建设、App设计、小程序开发、网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联