函数原型为void*malloc(unsigned  size),调用该函数,函数的功能就是在内存分配的动态存储区分配长度为size个字节的内存空间。若申请成功,返回一个 指向 所分配内存空间的起始地址的 指针;若申请分配内存空间不成功则返回NULL(值为0)。函数返回void*类型的值,void表示没有指定类型,void*类型的指针是通用指针,本质上只是内存地址,可以包含任何类型对象的地址.

1 int *p= (int *)malloc(100);
将分配100个字节的内存块,并把这个内存块的首地址(也就是内存块第一个字节的位置)转换为int*类型,赋给指针变量p。因为malloc()函数的返回值为void类型的通用指针,所以需要进行类型转换,指明这块内存区里面的数据类型是int类型,假设int类型数据在机器上占4个字节,此时这个内存块上可以存放25个整数,如果不指明数据类型的话,在存读取数据的时候,无法知道读多少个字节将其转化为一个数据,所以进行类型转化的目的,就是明确告诉机器这块内存里面存放的是int类型的数据,每次读取4个字节作为一个整数。同样将数据写入这块内存区域时,也是每4个字节存入一个整数数据。

====================

指针        int*         p

p=void*       malloc(unsigned  size)

这俩种表示本质一样,p代表首地址,void*需强转为int*,确定首地址的返回类型,指明这块内存区里面的数据类型是int类型,明确告诉机器这块内存里面存放的是int类型的数据,每次读取4个字节作为一个整数。同样将数据写入这块内存区域时,也是每4个字节存入一个整数数据。

====================

malloc函数理解相关推荐

  1. Glibc:浅谈 malloc() 函数具体实现

    简介 源代码 __libc_malloc() _int_malloc() __libc_malloc() 分析 参数 __malloc_hook 全局钩子 ptmalloc_init 转入 _int_ ...

  2. malloc函数,大大的详解

    很多学过C的人对malloc都不是很了解,知道使用malloc要加头文件,知道malloc是分配一块连续的内存,知道和free函数是一起用的.但是但是: 一部分人还是将:malloc当作系统所提供的或 ...

  3. c语言中alloc作用,C语言内存分配 :malloc()函数与alloc()函数

    C语言跟内存分配方式 (1) 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. (2) 在栈上创建.在执行函数时,函数内局部变 ...

  4. 【malloc函数 创建动态数组】

    亲爱的盆友们大家好,我们都知道,在C语言中如果要使用数组,就必须提前设置好数组大小 eg: int arr[100], char arr[100], 不能设置 int arr[ ]    否则电脑会报 ...

  5. nodejs回调函数理解

    回调实例 问题:想要得到一秒后 计算出的结果 //错误写法function add(x,y) {console.log(1);setTimeout(function () {console.log(2 ...

  6. malloc函数分配失败处理的严重性

    本次在实际测试情况下,发现程序无缘无故的异常,导致看门狗超时复位,经过排查是malloc函数分配失败的时候,依然对指针进行了操作,导致异常.以前没重视这个问题是因为,总觉的malloc基本都会成功的, ...

  7. linux c语言 malloc动态分配指针,C语言malloc函数为一维,二维,三维数组分配空间...

    c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...

  8. c语言malloc函数用法_小白对c语言数组的基础总结

    数组 数组是一系列相同类型元素有序的集合. 数组的定义: 一般形式为: 类型符 数组名 [常量表达式] 如 int a[5]; 表示数组有五个元素,a[0]-a[5],不存在元素a[5]. *注意: ...

  9. 【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )

    文章目录 一.分析 malloc 函数的 arm 汇编语言 一.分析 malloc 函数的 arm 汇编语言 在上一篇博客 [Android 逆向]arm 汇编 ( 使用 IDA 解析 arm 架构的 ...

最新文章

  1. 科大奥锐干涉法测微小量实验的数据_光学干涉观测精确丈量宇宙 | 赛先生天文...
  2. TreeSet HashSet
  3. python分别统计男女人数_python实现爬虫统计学校BBS男女比例(一)
  4. (0067)iOS开发之iOS新增类UILayoutGuide的用途
  5. 灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)
  6. Rxjs 的一些学习笔记
  7. Buildroot构建指南——Linux内核
  8. php nginx 域名重定向,Nginx默认虚拟主机、用户认证、域名重定向
  9. java bigDecimal and double
  10. Android手机通讯录解析
  11. ROI区域提取(图上直接利用鼠标事件提取坐标点,可视化显示)
  12. (CVPR2019)图像语义分割(18) DANet-集成双路注意力机制的场景分割网络
  13. [Postman]响应(7)
  14. windows下的dig 命令和nslookup的用法及详例
  15. 如何建立一个Java商城系统?
  16. 波特率和比特率的定义及计算
  17. UIAccelerometer 加速计
  18. Photoshop CC 2017 软件安装包+安装教程
  19. 【爬虫实战】12306购票抓包分析以及任务分解
  20. accumulate 的用法

热门文章

  1. FCN全卷积网络上采样理解
  2. 研究超音波应用 利用声音作为新的通讯协议
  3. Linux camera驱动(1) - 概述
  4. creo绘图属性模板_Proecreo完整制作工程图格式和模板
  5. 2019-06-05 Java学习日记 day26 网络编程
  6. linux设置双屏强制设置分辨率,话说你们的双屏显示器是怎样设置的 尤其是外接显示器分辨率设置...
  7. 通过WPS把Word文档转换成PDF格式
  8. 决策树算法预测NBA赛事结果
  9. 计算机网络传输层课件,计算机网络基椽第八章(传输层)(全)ppt培训课件
  10. 泛函分析笔记(一) 基础的集合与映射