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

潍坊搜易网站建设网络运维工程师面试常见问题

潍坊搜易网站建设,网络运维工程师面试常见问题,沈阳网站建设58同城,网站 案例1.为什么要动态内存分配#xff1f; int val 20; int a[10]{0};上面我们声明并定义了一个大小为4字节的整型变量#xff0c;一个容量为10*4字节的整型数组。 开辟方式:我们在栈上开辟。 开辟空间的方式有两个特点#xff1a; 1. 空间开辟 大小是固定 的。 2. 数组在申明…1.为什么要动态内存分配 int val 20; int a[10]{0};上面我们声明并定义了一个大小为4字节的整型变量一个容量为10*4字节的整型数组。 开辟方式:我们在栈上开辟。 开辟空间的方式有两个特点 1. 空间开辟 大小是固定 的。 2. 数组在申明的时候 必须指定数组的长度它所需要的内存在编译时分配 。 但是对于空间的需求不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道 那数组的编译时开辟空间的方式就不能满足了。 有的老铁会说数组的话怎么会不够一开始指定数组长度就为100甚至更大不就行了。确实能想到这样说明你的思维方式没问题当你的父母让你煮饭但是你的父母并没有告诉你具体煮多少时最好的办法就是每个人再多加一碗。这就是扩大范围减少容错率。但是明明每个人一碗饭就够了你多煮一碗就会浪费(不能这餐吃完)。 动态分配诞生 2. 动态内存函数 2.1 malloc和free C 语言提供了一个动态内存开辟的函数 void* malloc (size_t size); 2.2C 语言提供了另外一个函数 free 专门是用来做动态内存的释放和回收的 void free (void* ptr); free 函数用来释放动态开辟的内存。 如果参数 ptr 指向的空间不是动态开辟的那 free 函数的行为是未定义的。 如果参数 ptr 是 NULL 指针则函数什么事都不做。 3.malloc和free #includestdio.h #includestdlib.h int main() {int a[10] {0};int* ptr (int*)malloc( 10* sizeof(int));if (NULL ! ptr)//判断ptr指针是否为空{int i 0;for (i 0; i 10; i){*(ptr i) i;printf(%3d,i);}}free(ptr);//释放ptr所指向的动态内存ptr NULL;return 0; } malloc和free都声明在 stdlib.h 头文件中。 使用要包含头文件。上面我们让一个指针ptr指向了开辟了10个整型大小空间。并赋值。然后释放。 我们可以按F11开始调试具体可以看看作者这篇文章。 最后运行完free,空间就会释放出来。 如果没有free函数当程序结束后同样空间也会释放但是就像你借书一样你又不看别人想用又用不了这样的事其实就很没意义了。好习惯是有借有还。我们在释放完空间后应该把指针置空防止要使用这个指针时这个指针还是指向这块分配的区域导致出错。 4.calloc函数 C语言还提供了一个函数叫 calloc calloc 函数也用来动态内存分配。 void* calloc (size_t num, size_t size); 它与malloc功能一样。但是它在使用的时候会初始化数据为0。 (int*)calloc(10,sizeof(int))int*malloc(10*sizeof(int))初始化数据为0 5.realloc函数 void* realloc (void* ptr, size_t size); realloc 函数的出现让动态内存管理更加灵活。 有时会我们发现过去申请的空间太小了有时候我们又会觉得申请的空间过大了那为了合理的时 候内存我们一定会对内存的大小做灵活的调整。那 realloc 函数就可以做到对动态开辟内存大小 的调整。 ptr 是要调整的内存地址 size 调整之后新大小 返回值为调整之后的内存起始位置。 这个函数调整原内存空间大小的基础上还会将原来内存中的数据移动到 新 的空间。 realloc 在调整内存空间的是存在两种情况 情况 1 原有空间之后有足够大的空间 情况 2 原有空间之后没有足够大的空间 情况 1 当是情况 1 的时候要扩展内存就直接原有内存之后直接追加空间原来空间的数据不发生变化。 情况 2 当是情况 2 的时候原有空间之后没有足够多的空间时扩展的方法是在堆空间上另找一个合适大小 的连续空间来使用。这样函数返回的是一个新的内存地址 由于上述的两种情况 realloc 函数的使用就要注意一些。
http://www.hkea.cn/news/14522961/

相关文章:

  • 网站域名注册空间建设人力资源网站目标
  • 株洲手机网站建设简易的小企业网站建设
  • 苏州网站开发电话离我最近的广告牌制作
  • 有没有可以做各种字体的网站网站开发需要投入多少时间
  • 企业网站发布图片文章策划书案例范文
  • 网站制作 呼和浩特深圳公司注册地址变更
  • 怎么在国税网站上做实名认证巨鹿企业做网站
  • 购物网站模板合肥网站建设模板
  • 广源建设集团有限公司网站平面设计公司图片
  • 海门网站制作动漫网站设计报告
  • wordpress可以问答seo关键词排名优化怎么样
  • 苏州专门网站wordpress的安装教程视频
  • 怎样选择高性价比的建站公司企业注册信息
  • 网站建设分为哪几个步骤汕头网站建设报价
  • 绵阳市建设工程监督网站楼盘网站模板
  • 左右左布局网站建设读经典做临床报名网站
  • 番禺网站建设怎样专业的网页设计服务公司
  • 网站域名要实名认证吗go网站做富集分析
  • 忆唐网不做网站做品牌申京效率值联盟第一
  • 临沂网站建设举措wordpress插件安装本地
  • 企业网站建设记什么会计科目淄博网站制作网页公司
  • 网站标题关键词长度德尔普网络做网站怎么样
  • 人社局网站群建设工作方案成都建站模板公司
  • 个人建站步骤wordpress 自定义网址
  • 2017做网站挣钱域名是什么结构称为域名空间
  • 在哪个网站可以查做项目中标的对战平台网站怎么建设
  • 搭建网站后的网址网站建设灬金手指下拉
  • 建网站和app北京装修设计公司排行
  • 网站开发平台及常用开发工具免费微信小程序免费制作平台
  • 临沂建设公司网站免费查询网