使用malloc函数分配空间
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函数分配空间相关推荐
- malloc函数分配失败处理的严重性
本次在实际测试情况下,发现程序无缘无故的异常,导致看门狗超时复位,经过排查是malloc函数分配失败的时候,依然对指针进行了操作,导致异常.以前没重视这个问题是因为,总觉的malloc基本都会成功的, ...
- malloc函数分配内存失败的原因及解决方法
原文链接:http://blog.csdn.net/lighthear/article/details/70146602 malloc函数分配内存失败的原因及解决方法 先说结论 malloc()函数分 ...
- 利用malloc函数分配二维数组
利用malloc()函数分配的内存是连续的的,我们可以先分配二维数组的行(即行指针),然后利用分配的行指针,再分配列指针.咱们以分配一个4x5的二维数组为例,如下图(): 1.先分配连续的4块内存作为 ...
- c语言中alloc作用,C语言内存分配 :malloc()函数与alloc()函数
C语言跟内存分配方式 (1) 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. (2) 在栈上创建.在执行函数时,函数内局部变 ...
- c语言malloc函数用法_小白对c语言数组的基础总结
数组 数组是一系列相同类型元素有序的集合. 数组的定义: 一般形式为: 类型符 数组名 [常量表达式] 如 int a[5]; 表示数组有五个元素,a[0]-a[5],不存在元素a[5]. *注意: ...
- malloc申请内存空间失败
上午在调试自己写的一段代码的过程中,发现malloc函数分配内存失败,仔细梳理了一下自己写的代码,失败的malloc操作之前也malloc了两三次,但都是成功的,网上搜了一下,都提到失败的原因可能是因 ...
- C语言malloc函数的功能及用法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 点击跳转浏览. https://blog.csdn.net/qq_26501341/article/d ...
- C语言中malloc函数及free函数用法(定义动态数组及释放)
一.关于静态数组.动态数组 二.malloc()和free()的基本概念以及基本用法 1.函数定义 2.函数用法 3.关于函数使用注意事项 三.malloc()函数分配内存空间的由来 四.malloc ...
- 关于C语言的malloc函数以及内存泄漏的问题
malloc函数 malloc函数的原型: (void *)malloc(int size) malloc函数的返回值是一个void类型的指针,参数为int类型的数据,即申请分配的内存大小,单位是字节 ...
最新文章
- 常用的python数值处理函数,python常用数值函数总结
- 使用Kiwi CatTools 实现交换机自动备份
- PMP-【第9章 项目资源管理】-2021-2-15(200页-219页)
- 云计算之路-道歉,无地自容的:4月7日14:15~18:35网站故障给大家带来麻烦了
- 清理系统垃圾的快捷方法
- POJ-1125 Stockbroker Grapevine 最短路
- python算法应用(二)——一些使用技巧
- LeetCode(804)——唯一摩尔斯密码词(JavaScript)
- java pdf在线阅读插件_JAVA实现在线查看PDF和office文档
- Java面试题:Java设计模式11道常见面试题
- Java常见异常类【整理】
- 计算机将会代替老师吗英语范文,英文作文电脑对教育的重要意义
- SAP中销售价格导致的无法发货的实例分析
- 网络打印机 显示服务器脱机,网络打印机老是脱机怎么回事_网络打印机显示脱机的处理办法...
- 编写用户故事模板_编写踢屁股用户故事
- winMerge配色方案
- 用户的登录及注册功能
- Qt Mainwindow添加/删除标题栏
- IDEA的基本使用:让你的IDEA有飞一般的感觉
- PHPNOW安装及使用