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

本科专业建设网站深情密码免费观看网站

本科专业建设网站,深情密码免费观看网站,国外好看的网站设计,太原的网站建设公司1.2 C内存 参考 https://www.nowcoder.com/issue/tutorial?tutorialId93uuid8f38bec08f974de192275e5366d8ae24 1.2.1 简述一下堆和栈的区别 参考回答 区别#xff1a; 堆栈空间分配不同。栈由操作系统自动分配释放 #xff0c;存放函数的参数值#xff0c;局部变…1.2 C内存 参考 https://www.nowcoder.com/issue/tutorial?tutorialId93uuid8f38bec08f974de192275e5366d8ae24 1.2.1 简述一下堆和栈的区别 参考回答 区别 堆栈空间分配不同。栈由操作系统自动分配释放 存放函数的参数值局部变量的值等堆一般由程序员分配释放。 堆栈缓存方式不同。栈使用的是一级缓存 它们通常都是被调用时处于存储空间中调用完毕立即释放堆则是存放在二级缓存中速度要慢些。 堆栈数据结构不同。堆类似数组结构栈类似栈结构先进后出。 1.2.2 简述C的内存管理 参考回答 内存分配方式 在C中内存分成5个区他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈在执行函数时函数内局部变量的存储单元都可以在栈上创建函数执行结束时这些存储单元自动被释放。 堆就是那些由new分配的内存块一般一个new就要对应一个delete。 自由存储区就是那些由malloc等分配的内存块和堆是十分相似的不过是用free来结束自己的生命。 全局/静态存储区全局变量和静态变量被分配到同一块内存中 常量存储区这是一块比较特殊的存储区里面存放的是常量不允许修改。 常见的内存错误及其对策 1内存分配未成功却使用了它。 2内存分配虽然成功但是尚未初始化就引用它。 3内存分配成功并且已经初始化但操作越过了内存的边界。 4忘记了释放内存造成内存泄露。 5释放了内存却继续使用它。 对策 1定义指针时先初始化为NULL。 2用malloc或new申请内存之后应该立即检查指针值是否为NULL。防止使用指针值为NULL的内存。 3不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。 4避免数字或指针的下标越界特别要当心发生“多1”或者“少1”操作 5动态内存的申请与释放必须配对防止内存泄漏 6用free或delete释放了内存之后立即将指针设置为NULL防止“野指针” 7使用智能指针。 内存泄露及解决办法 3.什么是内存泄露 简单地说就是申请了一块内存空间使用完毕后没有释放掉。1new和malloc申请资源使用后没有用delete和free释放2子类继承父类时父类析构函数不是虚函数。3Windows句柄资源使用后没有释放。 怎么检测 第一良好的编码习惯使用了内存分配的函数一旦使用完毕,要记得使用其相应的函数释放掉。 第二将分配的内存的指针以链表的形式自行管理使用完毕之后从链表中删除程序结束时可检查改链表。 第三使用智能指针。 第四一些常见的工具插件如ccmalloc、Dmalloc、Leaky、Valgrind等等。 1.2.3 malloc和局部变量分配在堆还是栈 参考回答 malloc是在堆上分配内存需要程序员自己回收内存局部变量是在栈中分配内存超过作用域就自动回收。1.2.4 程序有哪些section分别的作用程序启动的过程怎么判断数据分配在栈上还是堆上 参考回答 1.2.4 程序有哪些section分别的作用程序启动的过程怎么判断数据分配在栈上还是堆上 参考回答 一个程序有哪些section 如上图从低地址到高地址一个程序由代码段、数据段、BSS段、堆、共享区、栈等组成。 数据段存放程序中已初始化的全局变量和静态变量的一块内存区域。 代码段存放程序执行代码的一块内存区域。只读代码段的头部还会包含一些只读的常数变量。 BSS 段存放程序中未初始化的全局变量和静态变量的一块内存区域。 可执行程序在运行时又会多出两个区域堆区和栈区。 堆区动态申请内存用。堆从低地址向高地址增长。 栈区存储局部变量、函数参数值。栈从高地址向低地址增长。是一块连续的空间。 最后还有一个共享区位于堆和栈之间。 程序启动的过程 操作系统首先创建相应的进程并分配私有的进程空间然后操作系统的加载器负责把可执行文件的数据段和代码段映射到进程的虚拟内存空间中。 加载器读入可执行程序的导入符号表根据这些符号表可以查找出该可执行程序的所有依赖的动态链接库。 加载器针对该程序的每一个动态链接库调用LoadLibrary 1查找对应的动态库文件加载器为该动态链接库确定一个合适的基地址。 2加载器读取该动态链接库的导入符号表和导出符号表比较应用程序要求的导入符号是否匹配该库的导出符号。 3针对该库的导入符号表查找对应的依赖的动态链接库如有跳转则跳到3 4调用该动态链接库的初始化函数 初始化应用程序的全局变量对于全局对象自动调用构造函数。 进入应用程序入口点函数开始执行。 怎么判断数据分配在栈上还是堆上首先局部变量分配在栈上而通过malloc和new申请的空间是在堆上。 1.2.5 初始化为0的全局变量在bss还是data 参考回答 BSS段通常是指用来存放程序中未初始化的或者初始化为0的全局变量和静态变量的一块内存区域。特点是可读写的在程序执行之前BSS段会自动清0。 1.2.6 什么是内存泄露内存泄露怎么检测 参考回答 什么是内存泄露 简单地说就是申请了一块内存空间使用完毕后没有释放掉。1new和malloc申请资源使用后没有用delete和free释放2子类继承父类时父类析构函数不是虚函数。3Windows句柄资源使用后没有释放。 怎么检测 第一良好的编码习惯使用了内存分配的函数一旦使用完毕,要记得使用其相应的函数释放掉。 第二将分配的内存的指针以链表的形式自行管理使用完毕之后从链表中删除程序结束时可检查改链表。 第三使用智能指针。 第四一些常见的工具插件如ccmalloc、Dmalloc、Leaky、Valgrind等等。
http://www.hkea.cn/news/14445344/

相关文章:

  • 国外网站建设嫣语赋wordpress的视频封面能动
  • 新手做网站起步教程提供网站制作公司哪家好
  • 雅茂道网站建设做企业的网站的如何推广
  • 番禺定制型网站建设手机建立网站app
  • 通信公司网站建设惠州城市建设建筑网站
  • 江阳建设集团网站wordpress 怎么上传头像
  • 腾讯云 门户网站建设百度装修网站
  • 郑州制作网站价格网站更换服务器影响
  • 做外贸网站软工毕设做网站
  • 阜宁网站制作具体报价网站 栏目
  • pathon做网站wordpress图片不能居中
  • 网站设计一个页多少钱apache php mysql wordpress
  • 做色流网站在哪买网络科技公司logo设计
  • 网站开发维护任职要求美间在线设计平台
  • 网站的pdf预览是怎么做的17做网站广州新塘
  • 怎样在建设部网站查资质证书手机如何建设网站首页
  • 网站怎么防k中国十大策划公司排名
  • 秦皇岛营销式网站制作工信部网站报备
  • 做棋牌网站要什么源码最好的网站模板网站
  • 网站建设pad版本是什么wordpress 网站静态页面
  • 天津市建设教育培训中心网站wordpress 在线安装插件
  • 怎么在服务器上部署网站中国建设银行2024版本
  • 用asp.net做的网站网页设计实训报告
  • 微信分享的h5网站开发商城app开发价格
  • html5商城网站开发邯郸市城市建设局网站
  • 怎么样销售关于网站建设代备案网站
  • 霸州做网站shijuewang合肥百度关键词优化
  • dede学校网站番禺推广优化
  • dede做电影网站免费网站建设平台 iis
  • 网站开发和后期维护费用龙口有没有做网站的