当前位置: 首页 > news >正文

网站后台批量上传图片宁波外贸公司网站建设

网站后台批量上传图片,宁波外贸公司网站建设,长沙建站挺找有为太极,网站空间建设目录 前言 malloc函数 free函数 calloc函数 realloc函数 前言 在这一章节将讲解动态内存分配#xff0c;它可以在程序的堆区创建一块内存#xff0c;在这块内存中存什么值就是由自己决定的了 开辟的空间有两个特点#xff1a; 1. 空间开辟的大小是固定的 2. 数组在…目录 前言 malloc函数 free函数 calloc函数 realloc函数 前言 在这一章节将讲解动态内存分配它可以在程序的堆区创建一块内存在这块内存中存什么值就是由自己决定的了 开辟的空间有两个特点 1. 空间开辟的大小是固定的 2. 数组在声明时必须指定长度数组的大小一旦确定就不能调整 在使用这些函数之前我们需要包含他们头文件 #includestdlib.h malloc函数 该函数的作用是开辟一块固定大小连续的空间并返回指向这块空间的指针 所以它的返回值为void* 里面的参数size是一个以字节为单位的数字函数会开辟所给的大小 如果malloc开辟空间成功则按上面所说返回一个指向这块空间的指针 如果malloc开辟空间失败则会返回NULL指针 因此使用它时一定要进行检查返回值 如果传的size为0则具体怎么处理看编译器 具体使用malloc函数的代码如下 #include stdio.h #include stdlib.hint main() {int* p malloc(sizeof(int) * 4);if (p NULL){perror(malloc fail);return 1;}for (int i 0; i 4; i){p[i] i 1;}for (int i 0; i 4; i){printf(%d , p[i]);}return 0; } 首先我们定义了一个int* 类型的指针接收malloc的返回值 并且使用了if 语句判断malloc开辟空间是否成功如果成功则不会进入if 语句进入下面的语句 然后下面的两个for循环就是正常的给空间赋值和打印最终结果如下 但是这样做其实还差了点意思这个程序其实并不完美存在内存泄漏的问题 假设我们需要一直跑某一个代码那么我们如果这样一直使用内存不进行释放的话迟早有一次内存会被吃满这种现象叫做内存泄漏 所以为了解决这个问题我们需要使用另一个函数 free函数 free是专门用来做动态内存的释放和回收的 该函数没有返回值参数为一个void* 的指针想了解void*可以看看我前面的博客 C语言指针的基础详解-CSDN博客 注 1. 如果ptr指向的空间不是动态开辟的则free函数的行为是未定义的具体处理方式看编译器 2. 如果ptr是NULL指针则函数什么事情都不做 所以与上面动态开辟内存的malloc函数结合起来使用我们在上面写的代码只需要在最后加上一个free函数释放掉这块空间即可 #include stdio.h #include stdlib.hint main() {int* p malloc(sizeof(int) * 4);if (p NULL){perror(malloc fail);return 1;}for (int i 0; i 4; i){p[i] i 1;}for (int i 0; i 4; i){printf(%d , p[i]);}free(p);p NULL;return 0; } 最后free的参数为p表示释放掉p指向的这块动态开辟的空间 并且我们可以在最后将p置为空指针以防它变成野指针 calloc函数 calloc跟malloc基本差不多 第一个参数num是需要开辟的空间数量 第二个参数size是每个空间的大小 返回值与malloc一样 calloc与malloc的本质区别就是calloc会将开辟的那块空间的每个字节初始化为0 总结calloc会初始化malloc不会初始化 #include stdio.h #include stdlib.hint main() {int* p calloc(4, sizeof(int));if (p NULL){perror(malloc fail);return 1;}for (int i 0; i 4; i){printf(%d , p[i]);}free(p);p NULL;return 0; } 前面的代码我们将malloc换成了calloc并且将初始化的环节删除了最终输出结果如下 可以看到我们并没有给它初始化但是打印出来的结果是0 所以这个函数已经将这块空间给初始化为0了 realloc函数 realloc让动态内存管理更加灵活了 有时候我们会发现申请的空间太小了有时候又觉得申请的空间太大了浪费为了合理的使用内存 我们可以使用realloc函数进行调整 第一个参数ptr是要调整的内存地址 第二个参数是调整之后的新大小 函数返回值为调整之后的内存起始位置 realloc调整空间有两种情况 情况1原有空间之后有足够大的空间 情况2原有空间之后没有足够大的空间 如果是情况1则会直接在原来的空间后面直接追加空间最后返回原来的内存地址 如果是情况2则会在堆空间上另外找一个合适并且有足够大小的空间进行开辟最后返回新的内存地址  具体代码如下 #include stdio.h #include stdlib.hint main() {int* p malloc(sizeof(int) * 4);if (p NULL){perror(malloc fail);return 1;}int* ptr realloc(p, sizeof(int) * 6);for (int i 0; i 6; i){ptr[i] i 1;}for (int i 0; i 6; i){printf(%d , ptr[i]);}free(p);p NULL;return 0; } 第一个malloc开辟了四个int类型的空间若此时我们发现不够则以下用了realloc调整空间 下面使用了ptr来接收realloc将p指向的空间变成6个int类型的空间的起始地址 最后我们给ptr赋值并且打印结果如下 完
http://www.zqtcl.cn/news/106095/

相关文章:

  • 怎么做网站啊wordpress英文显示改中文
  • 建筑专业网站有哪些网站标题seo外包优化
  • 浙江建设厅网站施工员报名中国建设协会官网站
  • 网站建设优化是干嘛上海今天最新的新闻
  • 网站大全浏览器软文的概念
  • 盐山做网站价格莱芜征婚吧
  • 具有品牌的微网站建设网站设计培训班前台
  • 网站推广工具推荐html网站地图在线生成
  • 成都本地网站建设青岛电子商务的网站建设
  • 北京网站开发培训河南省百城建设提质工程网站
  • 郑州专业建网站南通网站建设技术支持
  • 简约网站程序网络营销方式较为单一
  • 绍兴企业自助建站123房产网
  • 科技类网站设计特点备案 网站首页地址
  • 做兼职网站网站建设培训速成
  • 开源的网站管理系统商务网站设计与建设实训
  • 东莞三合一网站制作江阴做网站的公司有
  • mvc5 网站开发之學 pdf百度搜索引擎首页
  • 手机进入网站自动识别城阳区规划建设局网站
  • 网站开发平台的公司订票网站开发公司
  • 郑州网站推广信息网架结构厂家
  • 提升网站流量的方法汕头站扩建
  • 响应式网站建设制作需要注意什么网站建设汇卓
  • 馨雨公司网站建设策划方案一个网站能放多少关键词
  • 福州 网站开发洛阳做网站找哪家好
  • 网站建设创业书海外短视频平台
  • 网站建设的职称做h5长图网站
  • 石家庄正规制作网站公司网页版微信会在电脑上留下记录吗
  • 互联网网站界面设计 要素没有网怎么安装wordpress
  • asp 英文企业网站 免费WordPress发图册