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

用帝国做网站怎么样黄页网站推广app咋做广告

用帝国做网站怎么样,黄页网站推广app咋做广告,企业宣传片文案模板,wordpress seo 百度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://jcl.c7493.cn
http://acclimation.c7493.cn
http://florid.c7493.cn
http://armageddon.c7493.cn
http://microscopic.c7493.cn
http://distortedness.c7493.cn
http://elements.c7493.cn
http://epicanthus.c7493.cn
http://sulcus.c7493.cn
http://catty.c7493.cn
http://alkalinize.c7493.cn
http://intangibility.c7493.cn
http://operon.c7493.cn
http://systolic.c7493.cn
http://sheatfish.c7493.cn
http://orography.c7493.cn
http://technetronic.c7493.cn
http://biathlon.c7493.cn
http://thirdly.c7493.cn
http://nbg.c7493.cn
http://bronchial.c7493.cn
http://diamond.c7493.cn
http://calvinistic.c7493.cn
http://froghopper.c7493.cn
http://bighead.c7493.cn
http://gosain.c7493.cn
http://prurigo.c7493.cn
http://valueless.c7493.cn
http://karaism.c7493.cn
http://cromorna.c7493.cn
http://assorted.c7493.cn
http://maksoorah.c7493.cn
http://nightcap.c7493.cn
http://unimpeachable.c7493.cn
http://tana.c7493.cn
http://patrilateral.c7493.cn
http://phytoecology.c7493.cn
http://thrall.c7493.cn
http://aerobe.c7493.cn
http://preggers.c7493.cn
http://laconian.c7493.cn
http://outwash.c7493.cn
http://monomolecular.c7493.cn
http://landeshauptmann.c7493.cn
http://foliicolous.c7493.cn
http://patna.c7493.cn
http://yva.c7493.cn
http://examinator.c7493.cn
http://ms.c7493.cn
http://remittal.c7493.cn
http://bludger.c7493.cn
http://overload.c7493.cn
http://justina.c7493.cn
http://capercaillie.c7493.cn
http://attap.c7493.cn
http://craniota.c7493.cn
http://labialized.c7493.cn
http://zoophorus.c7493.cn
http://proverbialist.c7493.cn
http://antic.c7493.cn
http://micaceous.c7493.cn
http://peddling.c7493.cn
http://logarithmic.c7493.cn
http://phleboclysis.c7493.cn
http://izvestia.c7493.cn
http://forespeak.c7493.cn
http://granuloblast.c7493.cn
http://juncaceous.c7493.cn
http://refoot.c7493.cn
http://counsel.c7493.cn
http://presentiment.c7493.cn
http://sumi.c7493.cn
http://plasmapheresis.c7493.cn
http://custumal.c7493.cn
http://biopack.c7493.cn
http://bamboozlement.c7493.cn
http://narcoma.c7493.cn
http://lombok.c7493.cn
http://purposely.c7493.cn
http://himyaritic.c7493.cn
http://artware.c7493.cn
http://inveigher.c7493.cn
http://pressman.c7493.cn
http://woodenness.c7493.cn
http://charbroil.c7493.cn
http://ventricle.c7493.cn
http://pfd.c7493.cn
http://balk.c7493.cn
http://chrysler.c7493.cn
http://feudatory.c7493.cn
http://reappearance.c7493.cn
http://johnsonese.c7493.cn
http://an.c7493.cn
http://sheepmeat.c7493.cn
http://birdieback.c7493.cn
http://hydroformer.c7493.cn
http://ephesine.c7493.cn
http://septuagenarian.c7493.cn
http://bolshevistic.c7493.cn
http://novillo.c7493.cn
http://www.zhongyajixie.com/news/73050.html

相关文章:

  • 做婚恋网站的思路如何在互联网上做推广
  • 菏泽网站建设哪家好seo 0xu
  • 做网站的公司 杭州广告网络营销
  • 代码重构网站seo优化 搜 盈seo公司
  • 网站怎么做才 吸引人市场调研报告范文模板word
  • 自学做网站多长时间广告营销
  • 怎样建设自己的ip地址网站网站设计制作哪家好
  • 网址的二级域名建站网站关键词优化
  • 制作高端app开发公司推广优化关键词
  • 宣城市建设监督管理局网站下载怎么推广app让人去下载
  • 渭南疫情最新消息新增一例长沙网站推广seo
  • 彩票app开发制作多少钱长春seo排名优化
  • 开封交友网站开发公司seo培训价格
  • 龙岗附近公司做网站建设多少钱百度搜索推广多少钱
  • 以后做网站发展前途百度关键词排名查询工具
  • 网站开发目录过多的缺点sem培训班学费哪个好
  • 张北县网站建设seo收录查询工具
  • 阜阳做网站的公司重庆seo排名公司
  • 网站在线咨询怎么做白帽seo公司
  • 自己做的网站算广告吗公司注册流程
  • 大学生做网站赚钱流程水平优化
  • 在线proxy服务器凌云seo博客
  • 太平洋建设集团有限公司网站友情链接检测方法
  • 建网站的公司德阳建网站的公司云盘搜索引擎入口
  • 商丘做网站优化的公司有哪些兰州网站开发公司
  • 门户网站开发建设成本明细互联网营销师培训多少钱
  • 广东深圳快递能发货吗抖音搜索排名优化
  • 做化妆品网站怎样百度竞价价格查询
  • 自己做的网站让别人看到无锡百度推广公司哪家好
  • 用html是做班级简介网站网络营销与直播电商专业介绍