[C语言] 数据结构-预备知识跨函数使用内存
跨函数使用内存
一个函数运行结束,使用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=;//结构体成员赋值
pst->score=;
pst->name="taoshihan";
return pst;
}
void showStudent(struct Student *pst){
//继续使用上面函数中分配的内存
printf("%s === %d === %d ",pst->name,pst->age,pst->score);
}
[C语言] 数据结构-预备知识跨函数使用内存的更多相关文章
- [C语言] 数据结构-预备知识指针
所有的伟大源于一个勇敢的开始 数据结构预备知识 指针 1.指针:是C语言的灵魂,指针=地址 地址:内存单元的编号 指针变量:存放内存单元地址的变量 int *p;//p是指针变量,int *表示该p变 ...
- [C语言] 数据结构-预备知识动态内存分配
动态内存分配 静态内存分配数组 int a[5]={1,2,3,4,5} 动态内存分配数组 int len=5; int *parr=(int *)malloc(sizeof(int) * len) ...
- 数据结构笔记2(c++)_跨函数使用内存的问题
预备知识 1.所有的指针变量只占4个子节 用第一个字节的地址表示整个变量的地址 //1.cpp 所有的指针变量只占4个子节 用第一个字节的地址表示整个变量的地址 # include <stdi ...
- [C语言] 数据结构-预备知识结构体
结构体 为什么出现结构体 为了表示一些复杂的数据,而普通的基本类型变量无法满足需求 什么叫结构体 结构体是用户根据实际需要自己定义的复合数据类型 如何使用结构体 1.两种方式 一般使用结构体指针的形 ...
- 使用malloc和free函数进行内存动态分配
一.在学习c语言里面,内存分配这个话题非常有意思,因为我们平时在开发的时候,如果一不小心没注意内存释放的话,写的的程序很容易出错,所以今天就来回顾一下c语言里面的内存动态分配,下面我们先来看一个实例来 ...
- c语言学习笔记(2)——预备知识
c语言预备知识 1.cpu 内存条 硬盘 显卡 主板显示器 之间的关系 硬盘里的<猛龙过江>(双击)--->内存条 cpu---->显卡,声卡--->显示器 2.he ...
- C语言面试基础知识整理
一.预处理 1.什么是预编译?何时需要预编译? (1)预编译又称预处理,是做些代码文本的替换工作,即程序执行前的一些预处理工作.主要处理#开头的指令,如拷贝#include包含的文件代码.替换#def ...
- django框架预备知识
内容: 1.web预备知识 2.django介绍 3.web框架的本质及分类 4.django安装与基本设置 1.web预备知识 HTTP协议:https://www.cnblogs.com/wyb6 ...
- flask框架预备知识
1.web预备知识 2.flask介绍 3.web框架的本质及分类 4.flask安装与基本设置 1.web预备知识 HTTP协议:https://www.cnblogs.com/wyb666/p/9 ...
随机推荐
- 【Cocos2d-Js基础教学(1)JS -Mac配置篇】
一.准备工作 Windows配置篇请见 http://cn.cocos2d-x.org/tutorial/show?id=1396 1.安装python 2.下载Android SDK Android ...
- MongoDB VUE的下载及安装
下载: mongo vue官网地址:http://www.mongovue.com/ 安装: 很简单,注意的是:在提示buy 和 OK 的时候点击OK即可: 连接: 默认连接(无用户名密码): 在启 ...
- Mac OS 10.12 - 安装Homebrew,像Ubuntu里面的apt一样简单地安装和删除软件!
Homebrew — macOS 不可或缺的套件管理器,Homebrew官方网站如此介绍自己!!! 中文官网:https://brew.sh/index_zh-cn.html 一,安装 打开shell ...
- go get golang.org/x/net 安装失败的解决方法!
GO语言在github.com上建立了自己的项目,对应的包如果不能下载,那么可以到这里去下载,比如:"go get golang.org/x/net"不能下载这个包,那么我们可以访 ...
- IDEA批量修改变量名操作
批量修改变量名操作:shift+F6选中变量---->修改变量---->Enter回车
- ZZNU 1719(最长上升子序列+最长下降子序列)
先吐血一发,噗! 再吐血一次,啊啊啊啊! 好吧,做了那么多次最长上升子序列,看这题看了半天才发现还有最长下降子序列,呵呵哒! AC代码: #include<stdio.h>//老恶心#in ...
- create session 参数介绍
Create Session alias, url, headers={}, cookies=None, auth=None, timeout=None, proxies=None, verify=F ...
- centos 6 下,zephir的安装和使用
centos 6 下,zephir的安装和使用 zephir或许会开启一个新的PHP编写方式. 在这之前,如果我们要编写php的扩展,一般都是c++/clang/vc等等. 但是现在,我们有了新的选择 ...
- [JavaScript] 获取数组中相同元素的个数
/** * 获取数组中相同元素的个数 * @param val 相同的元素 * @param arr 传入数组 */ function getSameNum(val,arr){ processArr ...
- Odoo9.0模块开发全流程
构建Odoo模块 模块组成 业务对象 业务对象声明为Python类, 由Odoo自己主动加载. 数据文件 XML或CSV文件格式, 在当中声明了元数据(视图或工作流).配置数据(模块參数).演示数据等 ...