博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态内存有那几个?
阅读量:4664 次
发布时间:2019-06-09

本文共 800 字,大约阅读时间需要 2 分钟。

动态内存有:malloc,calloc,realloc,free.

malloc:

  1. malloc函数向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。

  2. 函数声明:void *malloc(size_t size),void* 表示未确定类型的指针,void *可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据。

calloc:

     1、在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。

     2、与malloc的区别:

    calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。

     3、一般使用后要使用  (起始地址的指针) 对内存进行释放,不然内存申请过多会影响计算机的性能,以至于得重启电脑。如果使用过后不清零,还可以使用指针对该块内存进行访问
realloc:
 
     1、先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回,如果空间不够,先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域(注意:原来指针是自动释放,不需要使用free),同时返回新分配的内存区域的首地址。即重新分配存储器块的地址
 
 
free:
     1、作用:释放malloc(或calloc、realloc)函数给指针变量分配的内存空间的函数
使用后该指针变量一定要重新指向NULL,防止野指针出现,有效 规避误操作。

 

转载于:https://www.cnblogs.com/tyty/p/4912253.html

你可能感兴趣的文章
模块化开发(seajs)
查看>>
HDU1848 Fibonacci again and again 博弈 SG函数
查看>>
iOS-自建iPa应用分发平台
查看>>
12月2日站立会议
查看>>
【转载】详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别
查看>>
DBA笔记oracle undo_retention参数可动态修改
查看>>
123我爱你
查看>>
HDU 4033 Regular Polygon(几何 + 二分)
查看>>
webgl example1
查看>>
Django基础内容整理
查看>>
DTcms网站伪静态逻辑
查看>>
网络类型判断
查看>>
黑客dos命令大全
查看>>
Java开发必用的工具包
查看>>
https soap链接示例
查看>>
八LWIP学习笔记之用户编程接口(NETCONN)
查看>>
Git Day02,工作区,暂存区,回退,删除文件
查看>>
Docker安装MariaDB
查看>>
如何给app客户端进行埋点?
查看>>
结对第二次—文献摘要热词统计及进阶需求
查看>>