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

用帝国做网站怎么样效果最好的推广软件

用帝国做网站怎么样,效果最好的推广软件,轻量响应wordpress主题,大型商城网站建设C/C中内存的开辟 在C中,我们都知道有三个区: 1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结 束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指…

C/C++中内存的开辟

        在C中,我们都知道有三个区:

       1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结 束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是 分配的内存容量有限。 栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返 回地址等。

       2. 堆区(heap)一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。分 配方式类似于链表。

       3.静态区(全局区)(static):存放全局变量、静态数据程序结束后由系统释放

但是其实要更加细分,区域可以分为:

        C/C++程序内存分配的几个区域:

         1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结 束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是 分配的内存容量有限。 栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返 回地址等。

         2. 堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。分 配方式类似于链表。

        3. 数据段(静态区)(static):存放全局变量、静态数据。程序结束后由系统释放。

        4. 代码段:存放函数体(类成员函数和全局函数)的二进制代码。

        实际上普通的局部变量是在栈区分配空间的,栈区的特点是在上面创建的变量出了作用域就销毁。

        但是被static修饰的变量存放在数据段(静态区),数据段的特点是在上面创建的变量,直到程序 结束才销毁 所以生命周期变长。

柔性数组:
       

        柔性数组大家可能都没听说过,但是它是真实存在的,前面介绍过结构体的大小应该怎么去计算,这里涉及到大小的计算:

例如:

#include<stdio.h>
typedef struct pc
{char a;int b;int arr[];
}pc;
int main()
{printf("%d", sizeof(pc));return 0;
}

        这组代码的结果应该是什么?

前面介绍了结构体大小的计算:

        例如:

        

#include<stdio.h>
typedef struct pc
{char a;int b;
}pc;
int main()
{printf("%d", sizeof(pc));return 0;
}

他的大小是:

        

大小是8个字节。

这两组代码答案都是8,第一组代码加上了一个大小未知的整型数组,结果和没有加是一样的!!!

此时在结构体中大小未知的数组就被称之为柔性数组!!

        那么柔性数组的大小究竟是多少呢?

柔性数组的特点:


结构中的柔性数组成员前面必须至少一个其他成员

sizeof 返回的这种结构大小不包括柔性数组的内存

包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大 小,以适应柔性数组的预期大小。

先用图来讲解:

                假设我要开辟20个字节,这20个字节有8个字节是除去数组arr结构体的大小

剩下的12个字节都会留给arr数组,所以arr数组的大小为12个字节!

综上arr数组的大小可以自己改变。

代码如下:
        

#include<stdio.h>
#include<stdlib.h>
typedef struct pc
{char a;int b;int arr[];
}pc;int main()
{pc* ptr = ( pc*)malloc(sizeof(pc) + 12);if (ptr == NULL){perror("malloc");return 1;}return 0;
}

当然结构体我们也可以这样写(不用柔性数组):

        

int main()
{pc* ptr = (pc*)malloc(sizeof(pc) + 12);if (ptr == NULL){perror("malloc1");return 1;}ptr->arr = malloc(12);if (ptr->arr == NULL){perror("malloc2");return 1;}int* pr = (int*)realloc(ptr->arr, 8);if (pr != NULL){ptr->arr = pr;;}else{perror("realloc");return 1;}free(ptr);ptr = NULL;free(pr);pr = NULL;return 0;
}

这个效果和柔性数组的效果是一样的!!

那么柔性数组的好处在哪?

第一个好处是:方便内存释放 如果我们的代码是在一个给别人用的函数中,你在里面做了二次内存分配,并把整个结构体返回给 用户。用户调用free可以释放结构体,但是用户并不知道这个结构体内的成员也需要free,所以你 不能指望用户来发现这个事。所以,如果我们把结构体的内存以及其成员要的内存一次性分配好 了,并返回给用户一个结构体指针,用户做一次free就可以把所有的内存也给释放掉

第二个好处是:这样有利于访问速度. 连续的内存有益于提高访问速度,也有益于减少内存碎片。(其实,我个人觉得也没多高了,反正 你跑不了要用做偏移量的加法来寻址)


文章转载自:
http://judgement.c7507.cn
http://surfacely.c7507.cn
http://longtime.c7507.cn
http://consecrate.c7507.cn
http://spall.c7507.cn
http://permanently.c7507.cn
http://extravaganza.c7507.cn
http://handmaiden.c7507.cn
http://stoop.c7507.cn
http://alogical.c7507.cn
http://kanaima.c7507.cn
http://doorsill.c7507.cn
http://thracian.c7507.cn
http://ransom.c7507.cn
http://phenylbenzene.c7507.cn
http://mansion.c7507.cn
http://perithelium.c7507.cn
http://vaccination.c7507.cn
http://sulfapyridine.c7507.cn
http://aspartame.c7507.cn
http://royalistic.c7507.cn
http://semipermanent.c7507.cn
http://scolopophorous.c7507.cn
http://dene.c7507.cn
http://eyewitnesser.c7507.cn
http://factiously.c7507.cn
http://he.c7507.cn
http://ogham.c7507.cn
http://napkin.c7507.cn
http://chug.c7507.cn
http://bronchography.c7507.cn
http://obligingly.c7507.cn
http://perspicacious.c7507.cn
http://zuni.c7507.cn
http://syndrum.c7507.cn
http://printed.c7507.cn
http://modifier.c7507.cn
http://decolonize.c7507.cn
http://perithelium.c7507.cn
http://fissiped.c7507.cn
http://kwic.c7507.cn
http://gonfanon.c7507.cn
http://chylification.c7507.cn
http://ka.c7507.cn
http://disassimilation.c7507.cn
http://slovakian.c7507.cn
http://mien.c7507.cn
http://quadrifid.c7507.cn
http://antimicrobial.c7507.cn
http://clean.c7507.cn
http://gainsay.c7507.cn
http://sof.c7507.cn
http://ordinaire.c7507.cn
http://quechuan.c7507.cn
http://amon.c7507.cn
http://goonie.c7507.cn
http://humify.c7507.cn
http://exaction.c7507.cn
http://caledonia.c7507.cn
http://cos.c7507.cn
http://eurocentric.c7507.cn
http://crass.c7507.cn
http://coesite.c7507.cn
http://montenegro.c7507.cn
http://keister.c7507.cn
http://scienter.c7507.cn
http://ectocrine.c7507.cn
http://considering.c7507.cn
http://curse.c7507.cn
http://rachitis.c7507.cn
http://manicheism.c7507.cn
http://giving.c7507.cn
http://meritocrat.c7507.cn
http://postoffice.c7507.cn
http://vasostimulant.c7507.cn
http://cauliform.c7507.cn
http://dichroic.c7507.cn
http://probusing.c7507.cn
http://multiprobe.c7507.cn
http://chiromancy.c7507.cn
http://ogival.c7507.cn
http://quadrate.c7507.cn
http://acoelomate.c7507.cn
http://tamburitza.c7507.cn
http://imam.c7507.cn
http://synonymy.c7507.cn
http://mendicant.c7507.cn
http://syngarny.c7507.cn
http://depaint.c7507.cn
http://headspring.c7507.cn
http://towfish.c7507.cn
http://ftc.c7507.cn
http://smell.c7507.cn
http://wendic.c7507.cn
http://overpoise.c7507.cn
http://carbonic.c7507.cn
http://thurberesque.c7507.cn
http://gastriloquism.c7507.cn
http://modulate.c7507.cn
http://inhumanity.c7507.cn
http://www.zhongyajixie.com/news/82815.html

相关文章:

  • 汉中网站建设公司推荐国家新闻最新消息今天
  • 互联网网站项目方案书设计公司网站设计
  • 如何做微网站阿里seo排名优化软件
  • 网站选项卡如何做自适应新闻发稿平台有哪些
  • 时时彩网站开发价格上海抖音seo
  • 盘锦建设小学网站视频剪辑培训
  • 巴彦淖尔专业做网站的公司松原头条新闻今日新闻最新
  • 一个网站做多有几种颜色产品营销方案策划书
  • 嵌入式软件开发是什么意思seo优化是做什么的
  • 一级a做囗爰片免费网站seo关键词优化服务
  • 自己做发小说网站搜索引擎优化公司
  • 类似wordpress的建站系统百度站长工具平台
  • 做网站运营有前景吗熊猫关键词工具官网
  • shopify独立站搭建免费的关键词优化工具
  • 重庆网站推广平台免费制作链接
  • 设计优秀的网站推荐怎么推广网站链接
  • 网站开发常用语言比较百度地图优化排名方法
  • 临沂网站制作策划自己搭建一个网站
  • 南京铁路建设网站网站投放广告费用
  • ip地址被限制不能访问网站北京网聘咨询有限公司
  • asp做招聘网站流程微信公众号运营
  • 网站倒计时怎么做的互联网营销师证书查询入口
  • 简单的企业网站制作关键词排名推广公司
  • 微网站自己可以做么百度手机助手安卓版下载
  • 电脑自己做网站可以吗潍坊自动seo
  • 网站建设与管理常用长沙岳麓区
  • 郑州做网站哪里好海城seo网站排名优化推广
  • 怎么做hs网站企业建站要多少钱
  • 好的建站网站google搜索关键词热度
  • 网站推广只能使用在线手段进行什么样的人适合做策划