【建站服务】连云港小程序制作【连云港企业邮箱】连云港网站外包、连云港微信商城开发、连云港网店美工、连云港淘宝设计-域名申请
作者: 风兰 . 阅读量: 2 . 发表时间:2022-09-20 15:21:35
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
连云港小程序制作【连云港企业邮箱】连云港网站外包、连云港微信商城开发、连云港网店美工、连云港淘宝设计
淮安位于江苏省中北部,江淮平原东部。地处长江三角洲地区, [1] 是苏北重要中心城市, [2] 南京都市圈紧密圈层城市,淮河生态经济带首提首推城市 [3] ,坐落于古淮河与京杭大运河交点,处在中国南北分界线“秦岭-淮河”线上,拥有中国第四大淡水湖洪泽湖,是全国文明城市 [4] 、国家历史文化名城、国家卫生城市、国家园林城市、国家环境保护模范城市、国家低碳试点城市、中国优秀旅游城市。为淮扬菜的主要发源地之一,是江淮流域古文化发源地之一。
淮安有2200多年建城史。秦时置县,境内有著名的“青莲岗文化”遗址。曾是漕运枢纽、盐运要冲,驻有漕运总督府、江南河道总督府。历史上与苏州、杭州、扬州并称运河沿线的“四大都市”,曾经淮安“因运而兴、因运而盛” [5] ,有“中国运河之都”的美誉。中国大运河淮安段入选世界遗产名录。淮安地处江苏省长江以北的核心地区,邻江近海,为南下北上的交通要道,区位优势独特。是江苏省的重要交通枢纽,也是长江三角洲北部地区的区域交通枢纽。
淮安人杰地灵,是一代伟人周恩来总理的故乡。 [6] 历史上诞生过大军事家韩信、汉赋大家枚乘、巾帼英雄梁红玉、《西游记》作者吴承恩、民族英雄关天培、《老残游记》作者刘鹗等。 [7]
淮安有著名的红色旅游景区周恩来故里景区、刘老庄八十二烈士陵园、黄花塘新四军军部纪念馆、苏皖边区政府旧址纪念馆等,生态旅游景区古淮河文化生态景区、里运河文化长廊、洪泽湖古堰景区、第一山国家森林公园、清晏园、金湖水上森林公园等。
微软是通过使用一种特殊的数据结构管理内存分配来做到这一点的。这种结构维护调试信息,比如malloc调用点的文件名和行号,还会在实际的内存分配之前和之后分配缓冲区来检测对实际内存的覆写。关于这种技术的更多信息可以参考Microsoft Developer Network(http://msdn.microsoft.com/en-us/library/x98tf.aspx)。
Mudflap库(http://gcc.fyxm.net/summit/2003/mudflap.pdf)为GCC编译器提供了类似的功能,它的运行时库支持对内存泄漏的检测和其他功能,这种检测是通过监控指针解引操作来实现的。
目前为止,我们已经讨论了如何使用堆管理器分配和释放内存。不过,不同的编译器在技术实现上有所不同。大部分堆管理器把堆或数据段作为内存资源。这种方法的缺点是会造成碎片,而且可能和程序栈碰撞。尽管如此,它还是实现堆最常用的方法。
堆管理器需要处理很多问题,比如堆是否基于进程和(或)线程分配,如何保护堆不受安全攻击。
堆管理器有不少,包括OpenBSD的malloc、Hoard的malloc和Google开发的TCMalloc。GNU C库的分配器基于通用分配器dlmalloc(http://dmalloc.com),它提供调试机制,能追踪内存泄漏。dlmalloc的日志特性可以追踪内存的使用和内存事务,还有一些其他功能。
malloc和free函数提供了手动分配和释放内存的方法。不过对于很多问题,需要考虑使用C的手动内存管理,比如性能、达到好的引用局部性、线程问题,以及优雅地清理内存。
有些非标准的技术可以用来解决部分问题,这里将探讨其中一部分技术。这些技术的关键特性在于自动释放内存。内存不再使用之后会被收集起来以备后续使用,释放的内存称为垃圾,因此,垃圾回收就是指这个过程。
鉴于以下原因,垃圾回收是有价值的:
不需要程序员费尽心思决定何时释放内存;
让程序员专注应用程序本身的问题。
Boehm-Weiser Collector(http://www.hpl.hp.com/personal/Hans_Boehm/gc/)可以作为手动内存管理的替换方法,不过它不属于语言的一部分。
资源获取即初始化(Resource Acquisition Is Initialization,RAII)是Bjarne Stroustrup发明的技术,可以用来解决C++中资源的分配和释放。即使有异常发生,这种技术也能保证资源的初始化和后续的释放。分配的资源最终总是会得到释放。
有好几种方法可以在C中使用RAII。GNU编译器提供了非标准的扩展来支持这个特性,通过演示如何在一个函数中分配内存然后释放可以说明这种扩展。一旦变量超出作用域会自动触发释放过程。
GNU的扩展要用到RAII_VARIABLE宏,它声明一个变量,然后给变量关联如下属性:
一个类型;
创建变量时执行的函数;
变量超出作用域时执行的函数。
这个宏如下所示:
#define RAII_VARIABLE(vartype,varname,initval,dtor)
void _dtor_ ## varname (vartype * v) { dtor(*v); }
vartype varname __attribute__((cleanup(_dtor_ ## varname))) = (initval)复制代码在下例中,我们将name变量声明为字符指针。创建它时会执行malloc函数,为其分配32字节。当函数结束时,name超出作用域就会执行free函数:
void raiiExample() {
RAII_VARIABLE(char*, name, (char*)malloc(32), free);
strcpy(name,"RAII Example");
printf("%s
",name);}复制代码函数执行后会打印"RAII_Example"字符串。
不用GNU扩展也可以达到类似的效果(http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization#Ad-hoc_mechanisms)。
另一种处理内存释放的方法是利用异常处理(http://www.adomas.org/excc/)。尽管异常处理不属于标准C,但如果可以使用它且不考虑移植问题,它会很有用。下面说明利用Microsoft Visua Studio版的C语言的方法。
这里的try块包含任何可能在运行时抛出异常的语句。不管有没有异常抛出,都会执行finally块,因此也一定会执行free函数。
void exceptionExample() {
int *pi = NULL;
__try {
pi = (int*)malloc(sizeof(int));
*pi = 5;
printf("%d
",*pi);
}
__finally {
free(pi);
}}复制代码也可以用别的方法在C中实现异常处理。

连云港小程序制作【连云港企业邮箱】连云港网站外包、连云港微信商城开发、连云港网店美工、连云港淘宝设计
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站


