malloc 和free()函数的用法:
1.说明:
void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。void free(void *FirstByte): 该函数是将之前用malloc分配的空间还给程序或者是操作系统,也就是释放了这块内存,让它重新重新标记可用。
2.注意事项
1、申请了内存空间后,必须检查是否分配成功。2、当不需要再使用申请的内存时,记得释放;释放后应该把指向这块内存的指针指向NULL,防止程序后面不小心使用了它。3、这两个函数应该是配对。如果申请后不释放就是内存泄露;如果无故释放那就是什么也没有做。释放只能一次,如果释放两次及两次以上会出现错误(释放空指针例外,释放空指针其实也等于啥也没做,所以释放空指针释放多少次都没有问题)。4、虽然malloc()函数的类型是(void *),任何类型的指针都可以转换成(void *),但是最好还是在前面进行强制类型转换,因为这样可以躲过一些编译器的检查。 追加更深理解: Int len;Sacnf("%d",&len);Int* p=(int*)malloc(sizeof(int)*len); 第一个int* 是返回类型时指针类型第二个是先计算int 数据类型的长度,然后乘以len的大小,这样就分配了适当的空间注意:malloc只返回第一个字节地址: malloc函数能且只能返回第一个字节的地址,所以我们需要把这个无任何实际意义的第一个字节的地址(俗称干地址)转化为一个有实际意义的地址,因此,malloc前面必须加(数据类型*),表示把这个无实际意义的第一个字节的地址转化为相应类型的地址。
malloc 和free()函数的用法:相关推荐
- 关于C语言中的malloc和free函数的用法
一.malloc()和free()的基本概念以及基本用法: 1.函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针 ...
- 关于malloc和free函数的用法
http://blog.pfan.cn/vfdff/33507.html 个人总结 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少, ...
- C/C++ 动态存储分配 malloc calloc realloc函数的用法与区别
C++内存分配 https://blog.csdn.net/zhangxiao93/article/details/43966425
- calloc、malloc、realloc函数的区别及用法
calloc.malloc.realloc函数的区别及用法! 三者都是分配内存,都是stdlib.h库里的函数,但是也存在一些差异. (1)malloc函数.其原型void *malloc(unsig ...
- malloc函数的用法(超级白话版)
malloc函数的用法 在这里,我不讲什么原理性的东西,我就单纯讲讲怎么用. 首先malloc()函数返回的是void *类型,所以用的时候要进行强制类型转换 malloc函数用完后,记得使用free ...
- malloc和free函数详解
本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1.函数原型及说明: void *ma ...
- 【Linux入门到精通系列讲解】内存管理malloc和free函数
函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针.如果分配失败,则返回一个空指针(NULL). 关于分配失败的原 ...
- linux之getcwd函数解析,Linux 中C语言getcwd()函数的用法
Linux 中C语言getcwd()函数的用法 先来看该函数的声明: #include char *getcwd(char *buf,size_t size); 介绍: 参数说明:getcwd()会将 ...
- 自引用结构兼谈Malloc和Free函数
原文地址http://www.cnblogs.com/P_awl/archive/2010/04/08/1707852.html 一.自引用结构 1. 什么事自引用结构? 自引用结构(Self-Ref ...
- C语言动态申请内存空间之malloc(),calloc(),realloc()函数
在C语言中用于动态申请内存空间的函数主要为malloc()函数,calloc()函数,以及realloc()函数,以下主要介绍三个函数的用法,区别以及使用时的注意事项. malloc(),calloc ...
最新文章
- 一天一个Java基础——对象和类
- UVA11624 Fire!(bfs)
- 使用redis时遇到的问题
- RIS实现系统的远程安装之三使用远程安装
- vue在微信里面的兼容问题_微信H5页面兼容性问题分析及解决方法
- 【学术相关】为什么很多国内学者的AI的论文复现不了?
- 华为触摸提示音怎么换_抖音苹果iPhone手机怎么改微信消息提示音 自定义换声音教程...
- 【华为云技术分享】《跟唐老师学习云网络》— iptables - filter过滤功能
- VBA读取html表格内容,科学网—VBA读取word文档表格中table的cell的text文本 - 付安民的博文...
- { parser: “babylon“ } is deprecated; we now treat it as { parser: “babel“ }.
- java用php退出清除session_PHP学习笔记:删除与销毁session
- 哈工大物理学专业计算机知识怎样,哈尔滨工业大学应用物理学专业怎么样
- Python实现的简易HTTP代理服务器
- QPS、TPS、并发用户数、吞吐量
- POJ 3295 Tautology(构造)
- 安全 | 开源入侵防御系统 Snort
- 模拟电路9(微变等效电路法对共射基本放大电路进行分析)
- 计算机基本配置实验方案,实验4 计算机配置方案.doc
- 同事写了一个责任链模式,bug无数...
- oracle创建序列号