1.使用malloc函数分配空间

malloc函数的原型是:

void *malloc(unsigned int size);

函数的作用 : 在内存的动态储存区中分配一个长度为size的连续空间,并返回所分配第一个字节的地址.

看一下malloc的使用例子:

float *f = (float *)malloc(4);
char *c = (char *)malloc(1);

上面两个这种分配空间方式没有什么问题,分配长度为4的连续空间, 将函数原型的返回类型void *强制转换为float */char *, 并储存在指针f,c中.
上面方法是直接指定的分配的长度大小,但是如果遇到非已知长度,比如说自定义的结构体,我们无法知道他所占的内存长度,所以malloc通常和sizeof一起使用.

[改进] 使用sizeof配合malloc分配
sizeof的定义: sizeof是测量类型或者变量长度的运算符.

float *f = (float *)malloc(sizeof(float));
char *c = (char *)malloc(sizeof(char));
my_Struct *s1 = (my_Struct *)malloc(sizeof(my_Struct));

这样通过sizeof就可以直接测量变量的长度.

2. 使用free函数释放空间
free函数原型: :

 void free(void *p);

函数作用:
释放指针变量p所指向的动态空间,使这部分空间可以被其他变量使用.

现在对之前申请的空间进行释放:

free(f);
free(c);
free(my_struct); //空间释放后这些变量将不能再进行引用了

分配完的内存计算机就会分配给其他需要分配空间的变量, 动态分配空间完进行释放是个好习惯,做到有始有终.

使用malloc函数分配空间相关推荐

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

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

  2. malloc函数分配内存失败的原因及解决方法

    原文链接:http://blog.csdn.net/lighthear/article/details/70146602 malloc函数分配内存失败的原因及解决方法 先说结论 malloc()函数分 ...

  3. 利用malloc函数分配二维数组

    利用malloc()函数分配的内存是连续的的,我们可以先分配二维数组的行(即行指针),然后利用分配的行指针,再分配列指针.咱们以分配一个4x5的二维数组为例,如下图(): 1.先分配连续的4块内存作为 ...

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

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

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

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

  6. malloc申请内存空间失败

    上午在调试自己写的一段代码的过程中,发现malloc函数分配内存失败,仔细梳理了一下自己写的代码,失败的malloc操作之前也malloc了两三次,但都是成功的,网上搜了一下,都提到失败的原因可能是因 ...

  7. C语言malloc函数的功能及用法

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 点击跳转浏览. https://blog.csdn.net/qq_26501341/article/d ...

  8. C语言中malloc函数及free函数用法(定义动态数组及释放)

    一.关于静态数组.动态数组 二.malloc()和free()的基本概念以及基本用法 1.函数定义 2.函数用法 3.关于函数使用注意事项 三.malloc()函数分配内存空间的由来 四.malloc ...

  9. 关于C语言的malloc函数以及内存泄漏的问题

    malloc函数 malloc函数的原型: (void *)malloc(int size) malloc函数的返回值是一个void类型的指针,参数为int类型的数据,即申请分配的内存大小,单位是字节 ...

最新文章

  1. 常用的python数值处理函数,python常用数值函数总结
  2. 使用Kiwi CatTools 实现交换机自动备份
  3. PMP-【第9章 项目资源管理】-2021-2-15(200页-219页)
  4. 云计算之路-道歉,无地自容的:4月7日14:15~18:35网站故障给大家带来麻烦了
  5. 清理系统垃圾的快捷方法
  6. POJ-1125 Stockbroker Grapevine 最短路
  7. python算法应用(二)——一些使用技巧
  8. LeetCode(804)——唯一摩尔斯密码词(JavaScript)
  9. java pdf在线阅读插件_JAVA实现在线查看PDF和office文档
  10. Java面试题:Java设计模式11道常见面试题
  11. Java常见异常类【整理】
  12. 计算机将会代替老师吗英语范文,英文作文电脑对教育的重要意义
  13. SAP中销售价格导致的无法发货的实例分析
  14. 网络打印机 显示服务器脱机,网络打印机老是脱机怎么回事_网络打印机显示脱机的处理办法...
  15. 编写用户故事模板_编写踢屁股用户故事
  16. winMerge配色方案
  17. 用户的登录及注册功能
  18. Qt Mainwindow添加/删除标题栏
  19. IDEA的基本使用:让你的IDEA有飞一般的感觉
  20. PHPNOW安装及使用

热门文章

  1. 英伟达A100 Tensor Core GPU架构深度讲解
  2. 如何将一个逻辑库下所有数据集的名称汇总生成新的数据集BY:crackman
  3. win10禁止计算机进入休眠,Win10怎么关闭系统休眠 Win10关闭系统休眠方法
  4. 浅析即时通讯开发实时通信技术中的视频编解码
  5. Java——万字总结网络编程
  6. 2021年网易云音乐实时计算平台发展和挑战
  7. java -g_【JVM】7、深入理解Java G1垃圾收集器
  8. Hive汽车销售数据分析系统实战开发:
  9. 微积分基本定理:微分符号与积分符号是逆运算
  10. 大华摄像头的踩坑之路