malloc函数的学习
来源:互联网 发布:网络监控数据线连接 编辑:程序博客网 时间:2024/06/07 01:23
malloc函数的作用是申请分配一块连续空间。
1.头文件
malloc函数的头文件是< malloc >或者< stdlib.h >或者< alloc.h >(linux)
2.返回值
malloc若申请内存成功则会返回一个指向改该空间首地址的指针,该指针的类型为void(即可以被强制类型转化为需要的类型)。失败则返回一个NULL指针。一般情况下申请内存不会因为内存不足出现失败情况。所以失败一般是因为之前的程序访问越界。
3.使用
char * p;p=(char *)malloc(100);
100即为所要申请分配的空间字节长度。
4.空间位置
malloc函数所分配的空间是在堆区,这一点和数组(存储在栈区)不同。
5.动态分配
这应该是malloc最大的特点。下面是代码
int n;int *a=(int *)malloc(sizeof(int)*n);
等价于定义一个a[n]数组。
6.free()
free函数和malloc函数在同一个头文件中。
当使用完分配的空间后,切记要用free()释放该空间。
这时虽然该空间被释放,指向它的指针却没有变,它成为了一个野指针,这是很危险的。所以需要将给该指针赋NULL。
7.与变长数组(VLA)的优劣
优势:
(1)支持广,VLA只支持C99以后的编译器。
(2)可分配大空间(大数组),因为malloc申请的空间在堆区,而VLA存储在栈区,所以用malloc函数可以允许申请很大的空间。
劣势:
(1)访问速度慢,也是因为malloc申请的空间在堆区。
(2)需要与free搭配,稍显繁琐。
阅读全文
0 0
- malloc函数的学习
- malloc函数学习
- malloc函数的原理
- malloc 函数的用法
- malloc函数的问题
- malloc函数的用法
- malloc函数的实现
- malloc函数的使用
- malloc和free函数学习
- c++学习笔记----malloc函数
- 函数malloc的实现源代码~
- 函数malloc的实现源代码
- malloc函数的简单实现
- malloc函数,大大的详解
- malloc的实现原理学习
- malloc()函数和calloc()函数的区别
- malloc函数和calloc函数的区别
- malloc函数
- K3 CLOUD 插件的学习
- USACO 1.4 Combination Lock
- POJ
- 插入排序java
- keccak算法及实现
- malloc函数的学习
- linux鸟哥视频学习笔记03
- 什么是集群
- Integer to Roman
- 深度学习框架---keras的层次示意图---方便直观理解---适用sklearn模型的展示
- 百度地图API使用到的几个方法总结
- 考试总结18
- C语言中的随机数生成器
- 菱形继承--菱形虚拟继承