跨函数使用内存
一个函数运行结束,使用malloc函数分配的内存,如果不调用free,就不会释放
在另一个函数中还可以继续使用
#include <stdio.h> #include <malloc.h> //跨函数使用内存 //传递结构体指针,占用内存少 struct Student { int age; int score; char *name; }; struct Student * createStudent(struct Student *);//前置申明 void showStudent(struct Student *); int main(void){ struct Student *pst;//定义,当前只占4个字节 pst=createStudent(pst);//创建,分配内存 showStudent(pst);//展示,继续使用上面的内存 } struct Student * createStudent(struct Student *pst){ pst=(struct Student *)malloc(sizeof(struct Student));//给这个结构体分配内存,返回了指针 pst->age=100;//结构体成员赋值 pst->score=9999; pst->name="taoshihan"; return pst; } void showStudent(struct Student *pst){ //继续使用上面函数中分配的内存 printf("%s === %d === %d ",pst->name,pst->age,pst->score); }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/12501.html