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

广州网站建设菲利宾论文课程网站 建设背景

广州网站建设菲利宾,论文课程网站 建设背景,菜市场做建筑设计图库的网站设计,能自己做生物实验的网站了解动态内存函数 前言#xff1a;一、malloc函数二、calloc函数三、realloc函数四、free函数 前言#xff1a; 在C语言中#xff0c;动态内存函数是块重要的知识点。以往#xff0c;我们开辟空间都是固定得#xff0c;数组编译结束后就不能继续给它开辟空间了#xff0… 了解动态内存函数 前言一、malloc函数二、calloc函数三、realloc函数四、free函数 前言 在C语言中动态内存函数是块重要的知识点。以往我们开辟空间都是固定得数组编译结束后就不能继续给它开辟空间了开辟的空间满了就不能在开辟空间了就是不能在添加数据了。学习本文章我们就可以解决这个问题向内存申请空间满啦可以继续申请空间。 一、malloc函数 需要头文件——stdlib.h 浏览器直接翻译 malloc函数动态内存开辟的函数 void* malloc(size_t size);功能 这个函数向内存申请一个连续可用的空间并返回指向这块空间的指针。 如果开辟成功则返回一个指向开辟好空间的指针。如果开辟失败则返回一个NULL指针因此malloc的返回值一定要做检查。返回值的类型是void* 所以malloc函数并不知道开辟空间的类型具体在使用的时候由使用者自己决定。如果size为0malloc的行为是标准还是未定义的由编译器决定。malloc申请的空间当程序退出时要还给操作系统当程序不退出动态申请的内存不会主动释放需要用free函数来释放。 malloc申请的内存空间 malloc申请到空间后直接返回这个空间的首地址不会初始化空间的内容。 举个例子 #include stdio.h #include stdlib.h int main() { //变长数组的知识点vs不能用gcc可以用//int num 0;//scanf(%d, num);//int arr[num] { 0 };int* ptr NULL;ptr (int*)malloc(40);if (ptr NULL)//判断ptr指针是否为空{perror(malloc);exit; }else{int i 0;for (i 0; i 10; i)//给开辟的空间赋值ptr[i] i 1;}free(ptr);//释放ptr指向的空间ptr NULL;//让ptr指向空return 0; }二、calloc函数 需要头文件——stdlib.h 浏览器直接翻译 calloc函数动态内存分配函数 void* calloc(size_t num, size_t size);功能 函数的功能是为num个大小为size元素开辟一块空间并且把空间的每一个字节初始化为0.与malloc函数的区别只在于calloc函数会在返回地址之前把申请空间的每一个字节初始化为0. 举个例子 #include stdio.h #include stdlib.h int main() {int* p (int*)calloc( 10,sizeof(int));if (p NULL)//成立开辟失败{perror(calloc);exit;}free(p);p NULL;return 0; }p指向的地址 三、realloc函数 需要头文件——stdlib.h 浏览器直接翻译 realloc函数动态内存管理更加灵活 有时候我们发现过去申请的空间小了有时候我们会觉得过去申请的空间过大为了合理使用内存我们一定要对内存的大小做灵活的调整。realloc函数可以做到对动态开辟内存大小进行调整。 void* realloc(void* ptr, size_t size);功能 ptr是要调整的内存地址。size是调整后的新大小。返回值为调整之后的内存起始位置。这个函数在调整原空间大小的基础上还会将原来的数据移到新的空间。 注意 realloc调整内存空间有两种情况。 情况1原有空间之后有足够大的空间原地扩容。 当是情况1的时候要扩展内存就直接在原有内存之后直接追加空间原来空间的数据不发生改变。 情况2原有空间后面没有足够大的空间异地扩容。 当是情况2的时候原有空间后面没有足够多的空间时扩展的方法是在堆空间上另外找一个合适大小的连续空间来使用。这样函数返回的是一个新的内存地址。 所以我们在使用realloc函数的时候一定要注意 1、开辟新的空间。 2、 会将旧的空间数据拷贝到新的空间。 3、释放旧的空间。 4、返回新空间的起始地址。 举个例子 #include stdio.h #include stdlib.h int main() {int* ptr (int*) malloc( 100 );if (ptr ! NULL){ //可以使用这个空间}else{perror(malloc);exit;}//扩展空间int* p (int*)realloc(ptr, 1000);//可能增容失败if (p ! NULL){//增容成功ptr p;//p指向的空间交给ptr去维护}free(ptr);//把开辟早堆上的空间释放掉ptr NULL;return 0; }四、free函数 需要头文件——stdlib.h 浏览器直接翻译 free函数释放动态开辟的内存 void* free(void* ptr);功能 如果参数ptr指向的那个空间不是动态开辟的那free函数的行为是未定义的。如果参数ptr是NULL指针则函数什么事都不做。
http://www.dnsts.com.cn/news/9574.html

相关文章:

  • 模板网站建设公司哪个好安徽网站优化好不好
  • 网页制作与网站设计自学网站建设作业
  • 绵阳建设工程信息网站wordpress一键 centos
  • 用什么建设网站重新建设网站的申请报告
  • 重庆微信网站开发wordpress菜单跳转
  • 深圳高端网站建设电话cms建站详细教程
  • 科技公司网站网页福建优化seo
  • 设计师a 网站wordpress 标签 修改
  • 如果给公司网站做网络广告wordpress 手机短信
  • 手机域名做网站中国谁第一家做网站要多少
  • 在线视频网站开发方案phpa市最牛的网站
  • 如何做后端网站管理刚做网站做什么网站好点
  • 怎么在百度搜索到我的网站网页制作工作总结
  • 外贸公司网站开发步骤wordpress微信分享按钮
  • 做网站找人用自己电脑做网站服务器-phpstudy+花生壳
  • 微信小程序怎么做网站辽宁智能建站系统价格
  • 安徽网站设计流程怎么在百度上建立网站
  • psd做成网站潍坊网站建设首荐创美网络
  • 做正常站网站都被墙了网络营销工具的分类
  • asp.net网站开发流程及相关工具网站建设比较好
  • 医疗软件网站建设公司排名加盟商网站建设
  • 网站收缩广告沧州*网站建设
  • 郑州建设网站企业关键词指数
  • 北京网站建设学习帝国cms做漫画网站教程
  • 上海正规做网站公司报价泉州住房和城乡建设局网站
  • 浙江龙泉建设局网站郑州网站建设技术方案
  • 网站群站优化品牌网络推广运营公司
  • 校园网站建设建议音乐建设网站
  • 婚纱照网站绵阳网站开发公司
  • 河南省城乡和住房建设厅网站成都制作手机网站