malloc()函数
malloc是动态内存分配函数,用于申请一块连续的指定大小的内存块区域,以void*类型返回分配的内存区域地址。
函数原型
void* malloc(unsigned int num_bytes);
分配长度为num_bytes字节的内存块。
使用时要包含头文件stdlib.h
,也可以使用#include <malloc.h>
,但并不建议,因为它不是标准的c库。
使用之前要计算出字节数,malloc开辟的是用户所需的字节数大小的空间。
函数返回值:分配成功则返回被分配内存的指针,否则返回空指针NULL。
注意事项:
返回类型为无类型指针,使用时要强制转换为所需要的类型。
指针自身 = (指针类型*) malloc (sizeof(指针类型)*数据数量)
int *p = NULL;
int n = 10;
p = (int *)malloc(sizeof(int)*n);//malloc()函数中的参数以字节为单位。
//内存分配成功返回内存首地址的指针,失败返回NULL。
重点:在使用malloc开辟空间时,使用完成一定要释放空间,如果不释放就会造成内存泄漏,
什么是内存泄漏。在使用malloc函数开辟的空间中,不要进行指针的移动,因为一旦移动可能出现申请的空间和释放空间大小的不匹配。
free()
函数
作用:释放malloc(或calloc、realloc)函数给指针变量分配的内存空间。完了之后要把指针指向NULL。(我的理解是被分配的这块内存被“赎身”了,成了一块自由内存,但是原来的指针还指向这块区域,如果这块内存后来被分配了其他信息,但是还可以通过原来的指针来访问到,那就出了大问题,莫名想起赵德汉的“是谁把钱放到我家冰箱的?”所以需要给原来的指针指向NULL。)
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容