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

做淘客网站要备案网站开发的ui设计

做淘客网站要备案,网站开发的ui设计,wordpress基本插件,鹤壁网站建设公司文章目录 前言1.为什么要存在动态内存2. malloc和free2.1 malloc2.2 free2.3 使用实例(malloc和free) 3. calloc3.1 calloc例子 前言 本文开始将开始学习C语言中一个比较重要的知识点或者是操作——动态内存管理。由于本次的知识比较重要,为…

文章目录

  • 前言
  • 1.为什么要存在动态内存
  • 2. malloc和free
    • 2.1 malloc
    • 2.2 free
    • 2.3 使用实例(malloc和free)
  • 3. calloc
    • 3.1 calloc例子

前言

本文开始将开始学习C语言中一个比较重要的知识点或者是操作——动态内存管理。由于本次的知识比较重要,为了方便描述,本次知识点分为上下两个章节。本次先跟大家聊一聊上半个章节的知识点——malloc和calloc函数

1.为什么要存在动态内存

目前我们掌握的内存开辟的方式就两种:

int val = 20;//在栈空间上开辟4个字节
char arr[66] = {0};//在栈空间上开辟一个大小为66个字节的连续内存空间

但是仔细思考一下,你会发现上述内存开辟有两个特点:

  • 开辟内存空间的大小是固定不变的
  • 数组在声明的时候,必须指明数组长度,数组的大小一旦确认下来之后就不可以改变了

但是我们对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟的内存空间的方式就不能满足我们的需求了。

为此C语言引入了动态内存开辟,让程序员可以自己申请和释放空间,比较灵活和方便。

2. malloc和free

2.1 malloc

malloc函数是C语言提供的一种动态内存开辟的函数之一,其被包含在stdlib.h的头文件中。
具体细节如下:
malloc
malloc
这个函数就是向内存申请一块连续可用的空间,并且返回这块空间的起始地址。

总结就是:

  • 形参:填入需要创建多大内存空间的数量,单位是字节。
  • 如果参数size为0,malloc行为是标准未定义的,具体去取决于编译器的实现。
  • 返回值:如果开辟成功,则返回一个指向开辟好空间的指针;如果开辟失败,则返回一个NULL指针,因此malloc函数在使用时一定要注意器返回值的判定。
  • 返回值类型:void*,所以一般在使用malloc函数一定要进行强制类型转换,具体情况按照实际需求来决定。

2.2 free

C语言提供的另外一个用作动态内存开辟重要的函数——free,free函数是专门用来做动态内存的释放和回收的。
函数具体细节如下:
free
free函数是用来释放所申请动态开辟的空间。

  • 如果参数ptr指向的空间不是动态开辟的,那么free函数的行为是标准未定义的。
  • 如果参数ptr的值为NULL指针,则free函数什么事都不做。

注意:malloc和free函数都声明在stdlib.h的头文件中。

2.3 使用实例(malloc和free)

#include<stdio.h>
#include<stdlib.h>//malloc的作用
int main()
{int* p = (int*)malloc(10*sizeof(int));//动态申请10个整型大小的空间,并且malloc函数的返回值做了强制类型转换为int*,原因是我要操作的是整型的数据if (p == NULL){perror("malloc failed");return 1;}for (int i = 0; i < 11; i++){*(p + i) = i + 1;}for (int i = 0; i < 10; i++){printf("%d ",p[i]); }free(p);p = NULL;//这步很重要,因为我虽然释放了它们的空间,但是指针p里面的值确实没有被消除的。//也就是说,p仍然还记得那个申请动态空间的起始地址,但是那个空间已经被回收了不属于我们的了,指针p就成为了也野指针。//为此,就要将p置为NULLreturn 0;
}

3. calloc

C语言还提供了一个动态开辟内存的函数——calloc
具体细节如下:
calloc

总结:

  • 函数的功能是为num个大小为size的元素开辟一个连续的内存空间,并且把空间中的每个字节都初始化为0。
  • 与函数malloc功能相似,区别只在于calloc函数会在返回地址之前把申请空间的每个字节全初始化为0。

3.1 calloc例子

int main()
{int* p = (int*)calloc(10,sizeof(int));//如果申请失败if (p == NULL){perror("calloc failed");return 1;}for (int i = 0; i < 10; i++){printf("%d ",p[i]);}free(p);p = NULL;return 0;
}

结果展示
正如结果所示,calloc函数的作用是申请一块num个大小为size的连续的内存空间,并且讲动态开辟的内存空间每个字节都初始化为0了。

所以如果我们对申请的空间的内容要求初始化,那么可以很方便的是用calloc函数来完成任务。

http://www.yayakq.cn/news/575460/

相关文章:

  • 聊城建设银行网站杭州外贸网站建设公司申跃
  • 做外贸网站好还是内贸网站好做网站的费用
  • 电子商务网站建设过程列出网站目录
  • 大学网站建设通常做网站要多久
  • 北京网站开发怎么样wordpress数据表优化
  • 网站上动画视频怎么做动漫视频网站开发
  • 建了网站却搜不出来c2c网站建设价格
  • 网站建设教程百度网盘广州公司注册流程详解
  • 网站建设素材网怎么做网站站内优化
  • 网站建设需求分析的实施福田蒙派克质量怎么样
  • 微商怎么做_和淘宝网站一样吗?工商局网站做年报
  • 都有哪些网站可以做推广asp企业网站自助建站系统免费版超漂亮版
  • wordpress 双语站点网站文章百度不收录
  • 太原网站专业制作碧海蓝天网站
  • 新手做站必看 手把手教你做网站网站外包公司有哪些
  • 做响应式网站图片需要做几版免费建立微网站
  • 网站制作时小红书关键词排名
  • 广州官网建站公司注册地址异常
  • 网站搭建是哪个岗位做的事儿免费网站建设哪家好
  • 英文网站推广服务wordpress恢复数据库
  • 网站建设推荐频道东莞网站建设哪家最好
  • 网站建设理由合肥房产网二手房出售
  • 海珠区有没有专门做网站的地方工作总结结尾
  • 北京做网站价格网站如何做视频教程
  • 网站开发技术可以做什么工作企业融资规划师
  • 宝安做棋牌网站建设哪家便宜定制网站制作服务商
  • 学做网站需要买的网站模板会影响
  • 专业全网推广建站公司口红的推广软文
  • 平阳网站优化做网盘搜索网站合法吗
  • 网站快捷导航ie怎么做wordpress调用图文列表