[C语言] 数据结构-预备知识跨函数使用内存
程序员文章站
2022-07-10 18:05:45
跨函数使用内存 一个函数运行结束,使用malloc函数分配的内存,如果不调用free,就不会释放 在另一个函数中还可以继续使用 ......
跨函数使用内存
一个函数运行结束,使用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); }