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

阜阳企业做网站网站策划书案例

阜阳企业做网站,网站策划书案例,wordpress plugin 开发,网站重新设计需要多久在程序中我们访问的内存地址都是从物理内存上映射而来的虚拟地址,假设我们使用的计算机实际物理内存(PM)只有1GB,而Linux中执行着三个进程,Linux会将PM中的某段内存映射成三段4G大小相同的虚拟内存(VM&…

        在程序中我们访问的内存地址都是从物理内存上映射而来的虚拟地址,假设我们使用的计算机实际物理内存(PM)只有1GB,而Linux中执行着三个进程,Linux会将PM中的某段内存映射成三段4G大小相同的虚拟内存(VM),让每个进程都认为得到了需要的完整内存

进程内存布局

        在虚拟内存中内存是被分配给不同的部分的,具体每部分存储的内容如下图

对该图做几点说明:

1,栈中的环境变量和命令行参数在程序一开始运行之时就被固定在了栈底(即紧挨着内核的地方),且在进程在整个运行期间不再发生变化,假如进程运行时对环境变量的个数或者值做了修改,则为了能够容纳修改后的内容,新的环境变量将会被拷贝放置到堆中。

2,栈还有一个名称叫做“堆栈”,这是中文比较奇葩的地方:“堆栈”跟“堆”没有半毛钱关系。

3,栈和堆都是动态变化的,分别向下和向上增长,大小随着进程的运行不断变大变小。

4,静态数据指的是:所有的全局变量,以及static 型局部变量。

5,数据段的大小在进程一开始运行就是固定的,其中.rodata存放程序中所有的常量,.data存放所有的静态数据,而如果静态数据未被初始化,则程序刚开始运行时系统将会自动将他们统统初始化为0然后放置在.bss段中,这么做的原因是要节省磁盘存储空间:由于未初始化的静态数据在运行时一概会被初始化为0,因此在程序文件中就没有必要保存任何未初始化的变量的值了

6,如果没有一个极具说服力的理由,我们应该尽量避免使用静态数据,因为滥用静态数据至少有两个缺点:第一,静态数据的生命周期跟整个进程相当,也就是说不管你什么时候需要用到他们,他们在进程一开始运行的时候就已经存在了,而且就算你不再需要他们,在进程完全退出之前他们都不会释放,会无条件地一直占用内存。第二,静态数据中的全局变量是一种典型的共享资源,尤其在多线程程序中,共享资源是滋生“竞态”的温床(详见5.x.x小节),实在没办法要在多线程程序在使用全局变量,必须仔细地使用各种同步互斥手段保护他们,而不是简单粗暴地胡乱使用。

7,用户代码所在的.text段也称为正文段,.text是一个默认的名称,他将会囊括用户定义的所有的函数代码,实际上我们可以将某些指定的函数放置到自己指定段当中去,比如在程序代码中有一段音乐数据,我们可以将此段数据放置在一个.mp3的代码段当中(详见2.6.3小节),而.init段是存放的系统初始化代码,这部分代码之所以要放置在.init段是因为这个段当中的代码默认只会被执行一遍(初始化只能执行一遍),完成任务之后所占据的内存会被立即释放,以便节省系统资源,因此我们自己定义的函数如果也是在进程开始之初只执行一遍就不再需要,那么也可以将之放置在该段中。

堆(heap)

        堆内存被称为内存中的自由区,这是一个非常重要的区域,因为在此区定义的内存的生命周期我们是可以控制的域,对比其他区域的内存则不然,比如栈内存,栈的特点就是临时分配临时释放,一个变量如果是局部变量,他就会被定义在栈内存中,一旦这个局部变量所在的函数退出,不管你愿不愿意该局部变量也就会被立即释放,再如静态数据,他们都被存储在数据段,如前所述,这些变量将一直占用内存直到进程退出为止。

        堆内存的生命周期是:从malloc( )/calloc( )/realloc( )开始,到free( )结束,其分配和释放完全由我们开发者自定义,这就给了我们最大的自由和灵活性,让程序在运行的过程当中,以最大的效益使用内存。

        对堆操作的函数介绍如下

 堆最大的特点是自定义其生命周期,除了调用free(),不会因为所在函数退出而释放

此处增加一个示例表明使用方法

#include <stdio.h>
#include <stdlib.h>int *heap_array(int *old_ptr,int n);
void show(int *ptr);int main(int argc, char const *argv[])
{int n , *p = (int*)malloc(1 * sizeof(int));//分配一块int类型大小的内存p[0] = 1;while (1){if(scanf("%d",&n) == 0)//输入非数字则退出break;p = heap_array(p , n);//输入数字则扩展内存并将数字填入最新的堆show(p);}free(p);return 0;
}int *heap_array(int *old_ptr,int n)
{int size,*new_ptr;size = old_ptr[0]+1;new_ptr =(int*) realloc(old_ptr , size * sizeof(int));new_ptr[0] = size;new_ptr[size - 1] = n;return new_ptr;
}void show(int *ptr)
{printf("---> ");for (int i = 1; i < ptr[0]; i++){printf("%d ",ptr[i]);}printf("<---\n");}

http://www.hkea.cn/news/371023/

相关文章:

  • 公司网站引导页百度搜索关键词排名优化技术
  • 网站开发与维护学什么网站建设seo优化培训
  • 常州网站开发百度网盘电脑版官网
  • wordpress安全权限关键词优化公司哪家好
  • 银川做网站服务google play下载安卓
  • 科技型中小企业服务网安徽搜索引擎优化seo
  • 网站建设专家排名邯郸seo营销
  • 做网站一个月20g流量够吗安全又舒适的避孕方法有哪些
  • 扫二维码直接进网站怎么做怎么提交网址让百度收录
  • 柳州建设局网站广告买卖网
  • 做外贸一般上哪些网站google play谷歌商店
  • 泉州手机网站制作如何做企业产品推广
  • 徐州手机网站设计汕头网站建设优化
  • 有没有专业收费做网站优化的百度百科优化排名
  • 常州网站建设哪家便宜江西seo推广软件
  • 如何用pageadmin做网站品牌宣传策略有哪些
  • 网站免费优化软件需要优化的地方
  • 24小时学会网站建设下载厦门百度竞价开户
  • 怎样学做网站网站权重等级
  • 做网站好还是做淘宝好北京seo推广
  • 郑州门户网站建设哪家好网站首页不收录
  • 网站制作营销型哪些网站可以发广告
  • 最新政府网站建设理念广州头条新闻最新
  • 济宁网站建设神华线上推广的三种方式
  • 我要表白网站在线制作如何做网站的教程
  • 福州论坛建站模板策划网络营销活动
  • 网站建设 天津百度市场应用官方app
  • 动态网站制作流程友情链接的定义
  • 企业网站开发方案免费建立一个网站
  • 网站引导页面制作的四个任务名称推广引流的10个渠道