内存管理_C语言快速入门与计算机二级备考
1.前言_C语言快速入门与计算机二级备考2.基础知识_C语言快速入门与计算机二级备考3.数据与量_C语言快速入门与计算机二级备考4.运算类型_C语言快速入门与计算机二级备考5.输入与输出_C语言快速入门与计算机二级备考6.判断与循环_C语言快速入门与计算机二级备考7.函数_C语言快速入门与计算机二级备考8.数组_C语言快速入门与计算机二级备考9.指针_C语言快速入门与计算机二级备考10.结构与联合_C语言快速入门与计算机二级备考11.字符串_C语言快速入门与计算机二级备考12.文件操作_C语言快速入门与计算机二级备考13.按位操作_C语言快速入门与计算机二级备考
14.内存管理_C语言快速入门与计算机二级备考
15.可变数组_C语言快速入门与计算机二级备考16.链表_C语言快速入门与计算机二级备考17.宏观控制_C语言快速入门与计算机二级备考18.附录_C语言快速入门与计算机二级备考- 在实现可变数组、实现链表之前,先学会对内存进行管理:为要存放的数据申请内存空间
内存的动态申请
-
例如:想实现在输入数据时,先告知输入个数,然后再输入,记录每个数据
这就需要申请一块内存用以存放数据
申请内存
-
需要头文件
#include<stdlib.h>
-
int *a=(int*)
malloc
(n*sizeof(int));
这样的语句为
*a
指向的变量分配了n个int大小的空间malloc
返回指针类型为void*
,需进行对其进行强制指针类型转换得到自己需要的类型(int*)
申请失败返回空指针
-
在使用
malloc
之后,若内存的空间不够导致申请失败,malloc
将返回一个NULL指针 -
因此要在申请内存之后检测申请是否成功
int *p =(int*)malloc(10); if(p)//当p不为NULL时,才对其进行操作 { *p=…… free(p); }
内存的释放
-
在使用完成后,要将所借的空间释放
free(a)
注意必须释放原来的指针,如果进行了a++等操作使a不再指向原来分配的空间,就不能free(a)
本文来自博客园,作者:无术师,转载请注明原文链接:https://www.cnblogs.com/untit1ed/p/18547864
本文使用知识共享4.0协议许可 CC BY-NC-SA 4.0
请注意: 特别说明版权归属的文章以及不归属于本人的转载内容(如引用的文章与图片)除外
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了