[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 ...
随机推荐
- event 自定义事件
自定义事件 1 public class Program 2 { 3 public event EventHandler ehdl=null; 4 public Program() 5 { 6 ehd ...
- DDoS防护之TCP防护
本文由 网易云 发布. TCP协议,相信对于每一个开发工程师都不陌生.由于该协议是一个面向连接,可靠的特性,广泛应用于现在互联网的应用中.如常见的Web.SSH.FTP等都是基于TCP协议.目前TC ...
- openvswitch 驱动卸载失败(Module openvswitch is in use)
现象: [root@ostack1 ~]# modprobe -r openvswitchmodprobe: FATAL: Module openvswitch is in use. 解决: [roo ...
- Django 使用getattr() 方法获取配置文件的变量值
在django项目的开发过程中,有时需要获取配置文件里的变量值,可以通过下面这样的方式去进行获取 from django.conf import settings item = getattr(set ...
- node 无脑生成小程序二维码图
RT 新建createwxaqrcode.js: const request = require('request') const fs = require('fs') // eg:生成购物车列表圆形 ...
- 本地搭建https服务
首先确保机器上安装了openssl和openssl-devel npm install openssl npm install openssl-devel (安装报错 导致我没安装成功,但是也还是配置 ...
- 【GDKOI2017】小队任务 莫比乌斯反演+杜教筛
题目大意:给你n,求$\sum_{i=1}^{n}\sum_{j=i}^{n}[gcd(i,j)=1](i+1)(j+1)$ 子任务一:暴力 子任务二:$T=50000,n≤10^7$ 子任务三:$T ...
- appt查看应用包报名和入口页面
appt在哪里? aapt不需要另外安装喔,有安装了adt的,可以直接在adt../sdk/build-tools/android-xx/下,找到aapt,详细路径如图 怎么使用aapt.bat? 直 ...
- Maven与Hudson集成
Hudson是一款优秀的持续集成产品,本文阐述Maven于Hudson的集成 Hudson的下载和安装 Hudson有两种安装模式,1:自运行(Hudson内建netty容器),2:放到如tomc ...
- Eclipse for android 实现代码自动提示智能提示功能
Eclipse for android 实现代码自动提示智能提示功能,介绍 Eclipse for android 编辑器中实现两种主要文件 java 与 xml 代码自动提示功能,解决 eclips ...