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

连云港网站制作【连云港网站优化】连云港建网站、连云港微信公众号运营、连云港网页设计、连云港微信小程序商城

发表日期: 2021-04-25 09:50:17 浏览次数:100

连云港网站制作【连云港网站优化】连云港建网站、连云港微信公众号运营、连云港网页设计、连云港微信小程序商城


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

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

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

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

执行这段代码可能会导致一个运行时异常。字符串中这类问题比较常见,如下所示:

char *name;printf("Enter a name: ");scanf("%s",name);复制代码

这里使用的是name所引用的内存,看起来似乎可以正确执行,实际上这块内存还没有分配。把图2-5中的pi换成name就可以说明这个问题。

3. 没有给malloc传递正确的参数

malloc函数分配的字节数是由它的参数指定的,在用这个函数分配正确的字节数时要小心。比如说要为10个双精度浮点数分配空间,那就需要80字节,通过下面的代码可以做到:

double *pd = (double*)malloc(NUMBER_OF_DOUBLES * sizeof(double));复制代码

注意 为数据类型分配指定字节数时尽量用sizeof操作符。

下例尝试为10个双精度浮点数分配内存:

const int NUMBER_OF_DOUBLES = 10;double *pd = (double*)malloc(NUMBER_OF_DOUBLES);复制代码

这段代码实际只分配了10字节。

4. 确认所分配的内存数

没有标准的方法可以知道堆上分配的内存总数,不过有些编译器为此提供了扩展。另外,也没有标准的方法可以知道堆管理器分配的内存块大小。

比如说,如果我们为一个字符串分配64字节,堆管理器会分配额外的内存来管理这个块。所分配内存的总大小,以及堆管理器所用到的内存数,是两者的和。图2-2对此有说明。

malloc可分配的最大内存是跟系统相关的,看起来这个大小由size_t限制。不过这个限制可能受可用的物理内存和操作系统的其他限制所影响。

执行malloc时应该分配所请求数量的内存然后返回内存地址。如果操作系统采用“惰性初始化”策略直到访问内存才真正分配的话会怎样?这时候万一没有足够的内存用来分配就会有问题,答案取决于运行时和操作系统。开发者一般不需要处理这个问题,因为这种初始化策略非常罕见。

5. 静态、全局指针和malloc

初始化静态或全局变量时不能调用函数。下面的代码声明一个静态变量,并试图用malloc来初始化:

static int *pi = malloc(sizeof(int));复制代码

这样会产生一个编译时错误消息,全局变量也一样。对于静态变量,可以通过在后面用一个单独的语句给变量分配内存来避免这个问题。但是全局变量不能用单独的赋值语句,因为全局变量是在函数和可执行代码外部声明的,赋值语句这类代码必须出现在函数中:

static int *pi;pi = malloc(sizeof(int));复制代码

注意 在编译器看来,作为初始化操作符的=和作为赋值操作符的=不一样。

使用calloc函数

calloc会在分配的同时清空内存。该函数的原型如下:

void *calloc(size_t numElements, size_t elementSize);复制代码

注意 清空内存的意思是将其内容置为二进制0。

calloc函数会根据numElementselementSize两个参数的乘积来分配内存,并返回一个指向内存的第一个字节的指针。如果不能分配内存,则会返回NULL。此函数最初用来辅助分配数组内存。

如果numElementselementSize为0,calloc可能返回空指针。如果calloc无法分配内存就会返回空指针,而且全局变量errno会设置为ENOMEM(内存不足),这是POSIX错误码,有的系统上可能没有。

下例为pi分配了20字节,全部包含0:

int *pi = calloc(5,sizeof(int));复制代码

不用calloc的话,用malloc函数和memset函数可以得到同样的结果,如下所示:

int *pi = malloc(5 * sizeof(int));memset(pi, 0, 5* sizeof(int));复制代码

注意 memset函数会用某个值填充内存块。第一个参数是指向要填充的缓冲区的指针,第二个参数是填充缓冲区的值,最后一个参数是要填充的字节数。

如果内存需要清零可以使用calloc,不过执行calloc可能比执行malloc慢。

注意 cfree函数已经没用了。早期的C用cfree来释放calloc分配的内存。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg


连云港网站制作连云港网站优化连云港建网站、连云港微信公众号运营、连云港网页设计、连云港微信小程序商城


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