指针与堆内存

来源:互联网 发布:淘宝印度神油是真的吗 编辑:程序博客网 时间:2024/05/18 02:41

什么是堆内存?
首先需要知道,堆内存指的是计算机内存中除了操作系统、程序、程序变量之外,剩余的内存空间。想要使用堆内存,只能通过指针的方式来申请使用,如果堆内存有足够的空间,就会把申请的这块内存的首地址返回,以便以后能够去使用这块堆内存。
为什么要使用堆内存?
我们在使用内存存储数据的时候,如果不使用堆内存,那么我们的内存空间就是固定的。就比如,我们用数组array[]来存放和操作数据,那么我们在申明这个数组的时候,就必须明确定义这个数组的长度,以便操作系统给我们的数组分配内存空间,但是这是有局限性的,如果后面用到的数据比现在定义的数组要大,那就比较麻烦了。同时数组还存在一个问题,就是它的生命周期是很长的,需要长期占有内存空间。而使用动态申请堆内存的方式,我们的数据大小不用局限于固定的范围,因为可以动态申请内存空间,如果不够用就申请。同时,堆内存在使用之后,可以马上释放,对于内存的利用比较合理。
怎样使用堆内存?
通过 malloc( )函数来分配堆内存,通过 free( )函数来释放分配堆的内存。
int * temps;
temps = (int ) malloc(10 sizeof(int));
这段代码首先定义了一个指针变量,然后通过malloc函数来申请10个int数据的空间,然后把这段内存的首地址赋值给指针变量temps。
需要注意的是,这里用了一个强转(int *),这是由于malloc函数返回的总是一个字符型指针,所以如果你用malloc()来分配其他类型的数据,就需要强转才行。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 二岁宝宝有蛀牙怎么办 3岁宝宝有蛀牙了怎么办 三岁宝宝夜惊怎么办 小班孩子跳舞不好好跳怎么办 15个月宝宝拉稀怎么办 孩子学习不认真该怎么办 孩子学习不自觉该怎么办 孩子学习压力大该怎么办 分手发信息不回怎么办 两岁宝宝不会回答问题怎么办 分手了我还想他怎么办 两岁宝宝特别不听话怎么办 2岁宝宝争东西怎么办 两岁宝宝钙吸收不好怎么办 1岁宝宝害羞胆小怎么办 2岁宝宝害羞胆小怎么办 6个月的宝宝胆小怎么办 3岁半宝宝很胆小怎么办 分手了想他了怎么办 分手了还想联系怎么办 2岁多宝宝不长肉怎么办 2个月宝宝尿裤子怎么办 四岁宝宝脾气大怎么办 两周宝宝换奶粉怎么办 两周半宝宝不喝奶粉怎么办 2岁半宝宝太调皮怎么办 2岁宝宝晚上睡觉晚怎么办 三周岁半宝宝入园后不合群怎么办 数学懒于思考的孩子怎么办 2岁宝宝爱哭不讲道理怎么办 孩子不讲道理一直哭怎么办 白天不烧晚上烧怎么办 两岁宝宝出虚汗怎么办 两岁宝宝出水痘怎么办 两岁宝宝爱看手机怎么办 两岁宝宝太好动怎么办 五岁宝宝不会数数怎么办 四岁宝宝算数不好怎么办 两个月宝宝体内有火怎么办 两个月宝宝有火怎么办 2岁宝宝起眼屎怎么办