malloc函数用法
1、函数声明
void *malloc(int size);
说明:malloc向系统申请分配size字节的内存空间,返回类型为void*类型。
2、使用
int *p;
p = (int *)malloc( sizeof(int) );
注意:
(1)因为malloc返回的是不确定类型的指针,所以返回之前必须经过类型强制转换,否则编译报错,如:“ 不能将void*赋值给int*变量 ”。
(2)malloc只管分配内存,并不会初始化,其内存空间中的值可能是随机的。如果分配的这块空间原来没有被使用过,那么其中每个值都可能是0。相反,空间里面可能遗留各种各样的值。
(3)实参为需要分配的字节大小,如果malloc(1),那么系统只分配了1个字节的内存空间,这时注意,如果在这块空间中存放一个int值,由于int类型占4个字节,那么还有3个字节未分配空间,系统就会在已经分配的那1个字节的基础上,依次向后分配3个字节空间,而这就占有了“别人”的3个字节空间,“别人”原有的值就被清空了。
(4)分配的空间不再使用时,要用free函数释放这块内存空间。
3、示例
分配100个int类型的空间:
int *p;
p = (int *)malloc( sizeof(int) * 100 );
4、malloc函数工作机制
(1)malloc函数被调用时,它会沿空闲链表寻找一个可以满足需求的内存块,然后把所需大小的内存块分配给用户,剩下的返回到链表上。free函数被调用时,它将释放的内存块连接到空闲链表上。
(2)到最后,空闲链表会被分成很多小的内存片段,当用户申请一块较大的内存空间时,空闲链表上可能没有满足需求的内存块了,这时,malloc函数请求延时,并将空闲链表内的小内存片段整理成大的内存块,最终返回。
malloc函数用法相关推荐
- c语言malloc函数用法_小白对c语言数组的基础总结
数组 数组是一系列相同类型元素有序的集合. 数组的定义: 一般形式为: 类型符 数组名 [常量表达式] 如 int a[5]; 表示数组有五个元素,a[0]-a[5],不存在元素a[5]. *注意: ...
- c语言 malloc 函数用法
函数声明: Tips: void的字面意思是"无类型",void *则为"无类型指针",void *可以指向任何类型的数据. malloc 函数申请空间需要使用 ...
- c语言malloc函数用法_C语言内存模型!小本本记起来啊!
一.C语言的内存分配模型 1.程序代码区:存放函数体的二进制代码. 2.全局区数据区:全局数据区划分为三个区域.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全 ...
- C语言中 malloc函数用法
#include <stdio.h> /* printf, scanf, NULL / #include <stdlib.h> / malloc, free, rand, sy ...
- C语言中malloc函数及free函数用法(定义动态数组及释放)
一.关于静态数组.动态数组 二.malloc()和free()的基本概念以及基本用法 1.函数定义 2.函数用法 3.关于函数使用注意事项 三.malloc()函数分配内存空间的由来 四.malloc ...
- malloc函数的用法(超级白话版)
malloc函数的用法 在这里,我不讲什么原理性的东西,我就单纯讲讲怎么用. 首先malloc()函数返回的是void *类型,所以用的时候要进行强制类型转换 malloc函数用完后,记得使用free ...
- c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例
详解C语言用malloc函数申请二维动态数组的实例 C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单. Sample one #include int main() { c ...
- C语言malloc函数的功能及用法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 点击跳转浏览. https://blog.csdn.net/qq_26501341/article/d ...
- malloc函数及memset函数用法详解
最近在力扣刷题时,发现普通的创建数组很容易引起编译器报错. 而使用到动态内存分配malloc()函数和初始化函数memset()可以避免这类问题的发生.本文将详细介绍一下两个函数的 malloc() ...
- C语言学习:malloc()函数
函数声明: void *malloc(size_t size) 头文件: #include <stdio.h> 函数描述: 分配所需的内存空间,并返回一个指向它的指针. 参数: size ...
最新文章
- docker 命令详解(cp篇)
- hdu 1043 ,pku 1077 Eight ,八数码问题
- Linux内核链表深度分析【转】
- 前端每日实战:142# 视频演示如何用 CSS 的 Grid 布局创作一枚小鸡邮票
- 牛客 - 字典序(思维)
- 数控车椭圆编程实例带图_数控车床任意位置椭圆宏程序编程,内附实例程序!...
- 为什么你应该尝试@reach/router
- 电脑屏保在哪里设置_手机屏保调成绿色能护眼?真的吗?
- linux安装typecho教程,Typecho上手指南
- ndarray.ravel([order]) 和 ndarray.flatten([order])
- 2021,我的年终总结......
- Etherpad配置及管理功能
- 【协议相关】一些可用的RTMP,HTTP等源
- 三星java游戏下载_轻松游戏 三星Z500安装java游戏详细教程
- 【Matlab代码】基于小波分析的音频信号的特征识别
- 手机kindle导入本地书_别再说不会用手机传书至Kindle了,方法都在这儿!
- 导纳矩阵 matlab,matlab实现导纳矩阵
- html给页面整体添加左右边距_左右边距相对于页面宽度过大
- 说说Pluma插件管理框架
- 小学计算机打字比赛教案,打字比赛活动方案