内存管理_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/artlessist/p/18547864
本文使用知识共享4.0协议许可 CC BY-NC-SA 4.0
特别说明版权归属的文章以及不归属于本人的转载内容(如引用的文章与图片)除外
浙公网安备 33010602011771号