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

深圳网站. 方维网络企业简介怎么写

深圳网站. 方维网络,企业简介怎么写,电力建设网站,网站上线除了备案还需要什么目录 1、C/C内存划分 C语言的动态内存管理 malloc calloc realloc free C的动态内存管理 new和delete operator new函数和operator delete函数 new和delete的原理 new T[N]原理 delete[]的原理 1、C/C内存划分 1、栈#xff1a;存有非静态局部变量、函数参数、返回…目录 1、C/C内存划分 C语言的动态内存管理 malloc calloc realloc free C的动态内存管理 new和delete operator new函数和operator delete函数 new和delete的原理 new T[N]原理 delete[]的原理 1、C/C内存划分 1、栈存有非静态局部变量、函数参数、返回值等。 2、内存映射段用于装载共享的动态内存库用户可使用系统接口创建共享内存做进程间通信。 3、堆用于程序运行时动态内存的分配。 4、数据段存有全局数据和静态数据。 5、代码段存有可执行代码、只读变量。 2、C语言的动态内存管理 C语言使用malloc、calloc、relloc、free等函数管理动态内存。 malloc void* malloc (size_t size); 功能向堆申请一块size字节连续可用的空间并返回指针 开辟成功返回指向已开辟好的空间的指针 开辟失败则返回空指针 calloc void* calloc (size_t num, size_t size); 功能为num个大小为size字节的元素向堆申请开辟一块空间并且把空间的每个字节都初始化为0。 与malloc区别在于malloc不会初始化。 realloc void* realloc (void* ptr, size_t size); 功能重新分配内存块该内存块后面有足够的空间就进行原地扩容不够就异地扩容在堆上找另一块空间合适的连续空间使用先将原来内存的数据拷贝到这个内存块中在释放原来的空间 free void free (void* ptr); 功能释放分配的空间。如果参数ptr指向的空间不是动态开辟的那free函数的行为是未定义的。如果参数ptr是NULL指针则函数什么事都不做。 3、C的动态内存管理 new和delete C兼容C语言。C语言内存管理方式虽然在C中可以继续使用但在有些地方并不够完善而且使用起来比较麻烦。 因此C又提出了自己的内存管理方式通过new和delete操作符进行动态内存管理。 在申请自定义类型的空间时new会调用构造函数delete会调用析构函数而malloc与free不会。 new对应deletenew[]对应delete[]必须两两匹配不匹配的话就是未定义行为。 operator new函数和operator delete函数 new和delete是用户进行动态内存申请和释放的操作符operator new 和operator delete是系统提供的全局函数new在底层调用operator new全局函数来申请空间delete在底层通过operator delete全局函数来释放空间。 operator new函数功能 1、调用malloc去分配空间申请成功就直接返回 2、申请空间失败就会抛出异常 operator delete函数功能 operator delete 最终是通过free来释放空间的。 扩展不重要 operator new源码 /* operator new该函数实际通过malloc来申请空间当malloc申请空间成功时直接返回 申请空间失败尝试执行空间不足应对措施如果改应对措施用户设置了则继续申请否则抛异常。 */ void* __CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc) {void* p;while ((p malloc(size)) 0)if (_callnewh(size) 0){// 如果申请内存失败了这里会抛出bad_alloc 类型异常static const std::bad_alloc nomem;_RAISE(nomem);}return (p); }operator delete源码 #define free(p) _free_dbg(p, _NORMAL_BLOCK) void operator delete(void *pUserData) {_CrtMemBlockHeader * pHead;RTCCALLBACK(_RTC_Free_hook, (pUserData, 0));if (pUserData NULL)return;_mlock(_HEAP_LOCK);__TRYpHead pHdr(pUserData);_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead-nBlockUse));_free_dbg( pUserData, pHead-nBlockUse );__FINALLY_munlock(_HEAP_LOCK);__END_TRY_FINALLYreturn; }new和delete的原理 如果申请的是内置类型的空间new和mallocdelete和free基本类似不同的地方是 new/delete申请和释放的是单个元素的空间new[]和delete[]申请的是连续空间而且new在申 请空间失败时会抛异常malloc会返回NULL。 new的原理 new等价于operate new()构造函数先申请空间后在申请的空间上调用构造operate new()并不是new的重载因为其参数没有自定义类型。 /* operator new该函数实际通过malloc来申请空间当malloc申请空间成功时直接返回 申请空间失败尝试执行空间不足应对措施如果改应对措施用户设置了则继续申请否则抛异常。 */ void* __CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc) {void* p;while ((p malloc(size)) 0)if (_callnewh(size) 0){// 如果申请内存失败了这里会抛出bad_alloc 类型异常static const std::bad_alloc nomem;_RAISE(nomem);}return (p); } 由底层代码可以看出operator new是对malloc的封装。 delete原理 delete等价于operator delete()析构函数先调用析构再用operator delete释放对象空间。 #define free(p) _free_dbg(p, _NORMAL_BLOCK) void operator delete(void *pUserData) {_CrtMemBlockHeader * pHead;RTCCALLBACK(_RTC_Free_hook, (pUserData, 0));if (pUserData NULL)return;_mlock(_HEAP_LOCK);__TRYpHead pHdr(pUserData);_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead-nBlockUse));_free_dbg( pUserData, pHead-nBlockUse );__FINALLY_munlock(_HEAP_LOCK);__END_TRY_FINALLYreturn; }由底层代码可以看出operator delete()调用了free。 针对有资源要释放的对象时必须使用deletefree只是释放了对象的空间却没有释放对象内部的空间。 new T[N]原理 1、先调用operator new[]函数operator new[]中实际调用operator new函数完成N个对象空间的申请。 2、再调用N次构造函数完成N个对象的初始化。 delete[]的原理 1、先调用N次析构函数完成N个对象中资源的清理 2、再调用operator delete[]释放空间实际在operator delete[]中调用operator delete来释放空间
http://www.hyszgw.com/news/85496/

相关文章:

  • 网络游戏那个网站做的最好wordpress后台框架推荐
  • 网站建设 6万建设网站需要的硬件设备
  • 动漫做暧昧视频网站类似于微博网站怎么做
  • 给个网站能看的做兼职用哪个网站好
  • 网站改版方案模板个人网站制作毕业设计选题重难点
  • 内蒙古建设工程交易中心网站注册网站域名需要什么资料医疗器械
  • 建网站哪家质量好wordpress+写php页面
  • 合肥手机网站制作建设今天的新闻内容50字
  • 微信如何做有趣的短视频网站网上购物商城系统设计
  • 做视频在哪个网站收益高百度写作助手
  • 个人网站 logo 版权 备案 没用wordpress的XML-RPC
  • 平顶山公司做网站营销型网站建设公司哪里有
  • 可以做英文纵横字谜的网站html5网站素材
  • 推广 电子商务网站建设免费3d建模软件
  • 网站备案幕布照规范wordpress怎样静态化
  • 做网站需要多少台服务器岛国萝莉做的电影网站
  • 康保网站制作百度公司是国企还是私企
  • 给别人网站做跳转wordpress分类标题自定义
  • 深圳建设工程交易网站官网微信广告推广如何收费
  • 营销型网站优点深圳电力建设公司
  • 网站开发者的设计构想国家高新技术企业认定
  • 建立网站纯文字版本vi手册模板
  • 课程微网站开发技术ic网站建设
  • 阿里云网站模板送域名班级网站建设的内容
  • 企业网站建设费用 珠海编程网址
  • 什么软件可以查企业信息石家庄seo排名外包
  • 网站设计的基本流程是什么南充建网站的资料
  • dw做的网站怎么做后台wordpress外部样式
  • 珠海网站友情链接企业培训方案
  • 百度网站统计添加网址网站开发成本会计科目