当前位置: 网站首页>小程序开发>网站优化

连云港网站优化【连云港开通400电话】连云港网站搭建、连云港微信公众号推文外包、连云港开通京东拼多多设计、连云港淘宝装修

发表日期: 2021-04-25 10:24:10 浏览次数:180

连云港网站优化【连云港开通400电话】连云港网站搭建、连云港微信公众号推文外包、连云港开通京东拼多多设计、连云港淘宝装修

淮安位于江苏省中北部,江淮平原东部。地处长江三角洲地区, [1]  是苏北重要中心城市, [2]  南京都市圈紧密圈层城市,淮河生态经济带首提首推城市 [3]  ,坐落于古淮河与京杭大运河交点,处在中国南北分界线“秦岭-淮河”线上,拥有中国第四大淡水湖洪泽湖,是全国文明城市 [4]  、国家历史文化名城、国家卫生城市、国家园林城市、国家环境保护模范城市、国家低碳试点城市、中国优秀旅游城市。为淮扬菜的主要发源地之一,是江淮流域古文化发源地之一。

淮安有2200多年建城史。秦时置县,境内有著名的“青莲岗文化”遗址。曾是漕运枢纽、盐运要冲,驻有漕运总督府、江南河道总督府。历史上与苏州、杭州、扬州并称运河沿线的“四大都市”,曾经淮安“因运而兴、因运而盛” [5]  ,有“中国运河之都”的美誉。中国大运河淮安段入选世界遗产名录。淮安地处江苏省长江以北的核心地区,邻江近海,为南下北上的交通要道,区位优势独特。是江苏省的重要交通枢纽,也是长江三角洲北部地区的区域交通枢纽。

淮安人杰地灵,是一代伟人周恩来总理的故乡。 [6]  历史上诞生过大军事家韩信、汉赋大家枚乘、巾帼英雄梁红玉、《西游记》作者吴承恩、民族英雄关天培、《老残游记》作者刘鹗等。 [7] 

淮安有著名的红色旅游景区周恩来故里景区、刘老庄八十二烈士陵园、黄花塘新四军军部纪念馆、苏皖边区政府旧址纪念馆等,生态旅游景区古淮河文化生态景区、里运河文化长廊、洪泽湖古堰景区、第一山国家森林公园、清晏园、金湖水上森林公园等。

导致这几类问题的情况可能如下:

  • 访问已释放的内存;

  • 返回的指针指向的是上次函数调用中的自动变量

迷途指针示例

在下面这个简单的例子中,我们用malloc函数为一个整数分配内存,接下来,用free函数释放内存:

int *pi = (int*) malloc(sizeof(int));*pi = 5;printf("*pi: %d\n", *pi);free(pi);复制代码

pi变量持有整数的地址,但堆管理器可以重复利用这块内存,且其中存放的可能是非整数数据。图2-11说明了free函数执行前后的程序状态。假设pi变量属于main函数,位于地址100,malloc函数分配的内存位于地址500。

{%}

图2-11:迷途指针

执行free函数将释放地址500处的内存,此后就不应该再使用这块内存了。但大部分运行时系统不会阻止后续的访问或修改。我们还是可以向这个位置写入数据,如下所示。这么做的结果是不可预期的。

free(pi);*pi = 10;复制代码

还有一种迷途指针的情况更难觉察:一个以上的指针引用同一内存区域而其中一个指针被释放。如下所示,p1p2都引用同一块内存区域(称为指针别名),不过p1被释放了:

int *p1 = (int*) malloc(sizeof(int));*p1 = 5;...int *p2;p2 = p1;...free(p1);...*p2 = 10; // 迷途指针复制代码

图2-12说明了内存分配情况,虚线框表示释放的内存。

{%}

图2-12:迷途指针和指针别名

使用块语句时也可能出现一些小问题,如下所示。这里pi被赋值为tmp的地址,变量pi可能是全局变量,也可能是局部变量。不过当包含tmp的块出栈之后,地址就不再有效:

int *pi;...{
    int tmp = 5;
    pi = &tmp;}// 这里pi变成了迷途指针foo();复制代码

大部分编译器都把块语句当做一个栈帧。tmp变量分配在栈帧上,之后在块语句退出时会出栈。pi指针现在指向一块最终可能被其他活跃记录(比如foo函数)覆盖的内存区域。图2-13说明的就是这种情形。

{%}

图2-13:块语句的问题

处理迷途指针

有时候调试指针诱发的问题会很难解决,以下方法可用来对付迷途指针。

  • 释放指针后置为NULL,后续使用这个指针会终止应用程序。不过,如果存在多个指针的话还是会有问题。因为赋值只会影响一个指针。

  • 写一个特殊的函数代替free函数。

  • 有些系统(运行时或调试系统)会在释放后覆写数据(比如0xDEADBEEF,取决于被释放的对象,Visual Studio会用0xCC、0xCD或者0xDD)。在不抛出异常的情况下,如果程序员在预期之外的地方看到这些值,可以认为程序可能在访问已释放的内存。

  • 用第三方工具检测迷途指针和其他问题。

在调试迷途指针时打印指针的值可能会有所帮助,但需要注意打印的方式。确保用一致的方式打印,从而避免比较指针的值时产生歧义。

调试器对检测内存泄漏的支持

微软提供了解决动态分配内存的覆写和内存泄漏的技术。这种方法在调试版程序里用了特殊的内存管理技术:

  • 检查堆的完整性;

  • 检查内存泄漏;

  • 模拟堆内存不够的情况。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

连云港网站优化连云港开通400电话连云港网站搭建、连云港微信公众号推文外包、连云港开通京东拼多多设计、连云港淘宝装修

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878