c语言 malloc 函数用法
函数声明:
Tips: void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
malloc 函数申请空间需要使用free释放。
void* malloc(int size)
malloc向系统申请size字节的内存空间,返回值类型为void *。
使用说明:
int *p;
p = (int *)malloc( sizeof(int) );
- 因为malloc返回的是不确定类型的指针,所以返回之前必须经过类型强制转换,否则编译报错,如:“ 不能将void*赋值给int*变量 ”。
- malloc只管分配内存,并不会初始化,其内存空间中的值可能是随机的。如果分配的这块空间原来没有被使用过,那么其中每个值都可能是0。相反,空间里面可能遗留各种各样的值。
- 实参为需要分配的字节大小,如果malloc(1),那么系统只分配了1个字节的内存空间,这时注意,如果在这块空间中存放一个int值,由于int类型占4个字节,那么还有3个字节未分配空间,系统就会在已经分配的那1个字节的基础上,依次向后分配3个字节空间,而这就占有了“别人”的3个字节空间,“别人”原有的值就被清空了。
- 分配的空间不再使用时,要用free函数释放这块内存空间。
for example:
int *p;p = (int *)malloc( sizeof(int) * 100 );
malloc函数工作机制:
- malloc函数被调用时,它会沿空闲链表寻找一个可以满足需求的内存块,然后把所需大小的内存块分配给用户,剩下的返回到链表上。free函数被调用时,它将释放的内存块连接到空闲链表上。
- 到最后,空闲链表会被分成很多小的内存片段,当用户申请一块较大的内存空间时,空闲链表上可能没有满足需求的内存块了,这时,malloc函数请求延时,并将空闲链表内的小内存片段整理成大的内存块,最终返回。
c语言 malloc 函数用法相关推荐
- c语言malloc函数用法_小白对c语言数组的基础总结
数组 数组是一系列相同类型元素有序的集合. 数组的定义: 一般形式为: 类型符 数组名 [常量表达式] 如 int a[5]; 表示数组有五个元素,a[0]-a[5],不存在元素a[5]. *注意: ...
- c语言malloc函数用法_C语言内存模型!小本本记起来啊!
一.C语言的内存分配模型 1.程序代码区:存放函数体的二进制代码. 2.全局区数据区:全局数据区划分为三个区域.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全 ...
- C语言atoi()函数用法
C语言atoi()函数用法 头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * s ...
- fclose在c语言中的作用,c语言fcloseall函数用法实例介绍
c语言fcloseall函数用法实例介绍.fcloseall函数的返回值,函数 fcloseall() 将所有打开的流与其底层的文件或功能集合关闭.任何缓冲的数据都将首先被写入,使用 fflush(3 ...
- linux c语言 select函数用法
原文地址:点击打开链接 linux c语言 select函数用法 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 co ...
- c语言字符串strchr,C语言 strchr 函数用法
C语言 strchr 函数用法 C语言中strchr函数作用是为在一个串中查找给定字符的第一个匹配之处,该函的原型为"char *strchr(const char *str, int c) ...
- R语言missing()函数用法及举例
R语言missing()函数用法及举例 函数作用就是如果y没有具体的值,那么输出为真,如果y有具体的值,那么输出为假,这么说可能有点抽象,举个例子: 对于这样一段代码 myplot <- fun ...
- c语言strcmp函数用法_strcmp()C库函数用法和示例
c语言strcmp函数用法 C programming standard library provides strcmp() function in order to compare two stri ...
- C语言malloc函数的功能及用法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 点击跳转浏览. https://blog.csdn.net/qq_26501341/article/d ...
最新文章
- php $this self,php中self与$this的区别
- 【Android 面试基础知识点整理】
- Windows 10 中 Eclipse中无法添加Courier New字体的解决方法!
- 【数理知识】特征值、特征向量、左特征向量
- iOS快速开发框架--Bee Framework
- div 隐藏_CSS实现六边形Div图片展示效果
- 【转载】15分钟搭建Linux操作系统+Oracle数据库的环境
- 纯英文换行的css,利用CSS实现纯英文数字自动换行
- 阻塞和非阻塞、同步和异步 、五种IO模型
- Win-MASM64汇编语言-标志寄存器(EFLAGS/PSW/PUSHF/POPF)
- jmeter快速修改协议、服务器名称或IP、端口号的方法
- 2017年西安邮电大学第十二届数学建模竞赛B题论文
- mysql登陆案例_Mysql用户登陆验证过程 案例
- 大一下c语言笔记本电脑,适合大一新生的笔记本电脑排行榜2020_大一新生适合什么笔记本电脑...
- 个人项目----吴华文
- IC中LDO电路的DRC验证问题
- c语言volatile含义,c语言中volatile关键字是什么含义怎么办呢?
- 工地人员定位原理又是什么--新导智能
- 为什么Python是2023最值得学的编程语言?
- 一幅长文细学Vue(一)——Webpack打包工具
热门文章
- 计算机网络教室教师岗位责任,计算机室网络教室管理员岗位职责.docx
- 'string' : undeclared identifier
- R数据分析实战——奥运会120年历史
- 用程序解密爱因斯坦经典难题
- 精品基于Uniapp+SSM实现的Android的校园新闻管理系统实现的App
- HTML5知识点整理
- android进度条已加载部分闪光,Android进度条ProgressBar的实现代码
- VScode无法启动--- 感谢百度,感谢好人,感谢CCTV
- 你不知道的声纹识别,尽在阿里聚安全攻防挑战赛!
- Structural Deep Clustering Network阅读与翻译