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

关于建设 医院网站的请示app推广是什么工作

关于建设 医院网站的请示,app推广是什么工作,网站建设的er图,在家建设一个网站需要什么材料内存分配 内存分配的类型 C/C中内存分为5个区,分别为栈区、堆区、全局/静态存储区、常量存储区、代码区 静态内存分配:编译时分配,包括全局、静态全局、静态局部三种变量。 动态内存分配:运行时分配,包括栈&#x…

内存分配

内存分配的类型

C/C++中内存分为5个区,分别为栈区、堆区、全局/静态存储区、常量存储区、代码区

静态内存分配:编译时分配,包括全局、静态全局、静态局部三种变量。

动态内存分配:运行时分配,包括栈(局部变量),堆(c语言中用到的变量被动态的分配在内存中)。

变量的内存分配

栈区

介绍
  • 栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。
  • 栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。
  • 栈区按内存地址由高到低方向生长,其最大大小由编译时确定,速度快,但自由性差,最大空间不大。
  • 栈区是先进后出原则,即先进去的被堵在屋里的最里面,后进去的在门口,释放的时候门口的先出去。
存放内容
  • 临时创建的局部变量和const定义的局部变量存放在栈区。
  • 函数调用和返回时,其入口参数和返回值存放在栈区。

堆区

介绍
  • 堆区由程序员分配内存和释放。
  • 堆区按内存地址由低到高方向生长,其大小由系统内存/虚拟内存上限决定,速度较慢,但自由性大,可用空间大。

全局/静态区

  • 通常是用于那些在编译期间就能确定存储大小的变量的存储区,但它用于的是在整个程序运行期间都可见的全局变量和静态变量。
  • 全局区有 .bss段 和 .data段组成,可读可写。
.bss段
  • 未初始化的全局变量和未初始化的静态变量存放在 .bss 段。
  • 初始化为 0 的全局变量和初始化为0的静态变量存放在 .bss 段。
  • .bss 段不占用可执行文件空间,其内容由操作系统初始化。
.data段
  • 已初始化的全局变量存放在 .data 段。
  • 已初始化的静态变量存放在 .data 段。
  • .data 段占用可执行文件空间,其内容有程序初始化。

常量区

  • 字符串、数字等常量存放在常量区。
  • const修饰的全局变量存放在常量区。
  • 程序运行期间,常量区的内容不可以被修改。

代码区

  • 程序执行代码存放在代码区,其值不能修改(若修改则会出现错误)。
  • 字符串常量和define定义的常量也有可能存放在代码区。

栈区和堆区的比较

申请方式

栈由编译器管理,堆的分配和释放由程序员管理。

申请大小

栈是向低地址生长的数据结构,是一块连续的内存,能从栈中获得的内存较小,编译期间确定大小;堆是向高地址生长的数据结构,是一个不连续的储存空间,内存获取比较灵活,也较大。

栈与堆中的储存内容

栈:在函数调用时,第一个进栈的是主函数中的最后一条指令的地址,然后是函数的各个参数,在大多 数的c编译器中,参数是由右往左入栈的,然后是函数中的局部变量(静态变量是不入栈的),当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点开始运行;

堆:一般是在堆的头部用一个字节存放堆的大小,堆中的具体内容由程序员安排。

动态内存分配

malloc 函数

头文件

stdlib.hmalloc.h

函数原型

void* malloc(int size)

功能

分配长度为 size 字节的内存块

参数

只有一个参数,并且是整型

返回值

分配成功返回指向被分配内存的指针,否则返回空指针 NULL

返回值类型 void* ,在 C 语言中,void* 可以不经转换直接赋值给任何类型的指针变量(函数指针变量除外)

calloc 函数

头文件

stdlib.hmalloc.h

函数原型

void* calloc(int n,int size)

功能

分配 n 个长度为 size 字节的连续空间

返回值

分配成功返回指向分配起始地址的指针,否则返回空指针 NULL

realloc 函数

头文件

stdlib.hmalloc.h

函数原型

void* realloc(void* mem_address,int newsize)

功能

1.为已有内存的变量重新分配新的内存空间(可大、可小) ;

2.先判断当前的指针是否有足够的连续空间,如果有,扩大 mem_address 指向的地址,并且将 mem_ address 返回;

3.如果空间不够,先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来 mem_address 所指内存区域(注意:原来指针是自动释放,不需要使用 free),同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。

返回值

分配成功返回 mem_address 所指的内存区域,否则返回空指针 NULL

free 函数

动态分配的内存空间由程序员手动编程释放。

C 语言中,free 和 malloc、calloc、realloc 是成对出现的,有多少个 malloc,就应该有多少个 free 。

若 malloc、calloc、realloc 的个数比 free 多,会造成内存泄漏;若 malloc、calloc、realloc 的个数比 free 少,会造成二次删除,破坏内存,导致程序崩溃。

头文件

stdlib.h

函数声明

void free(void* ptr)

功能

释放之前调用 calloc、malloc 或 realloc 所分配的内存空间

参数

指针指向一个要释放内存的内存块,该内存块之前是通过调用 malloc、calloc 或 realloc 进行分配内存的。如果传递的参数是一个空指针,则不会执行任何动作。

返回值

不返回任何值

http://www.yayakq.cn/news/920227/

相关文章:

  • 北京科技网站建设公司云主机怎么安装网站
  • 雅安城乡住房建设厅网站青岛网站建设制作
  • 影院网站怎么做做商城网站产品怎么分布
  • 网站购物车建设如何做返利网站外推广
  • 网上做论文的网站有哪些内容非自己的网站如何做二次跳转
  • 网站建设夜猫本地做网站
  • 苏州网站设计公司官网中国纪检监察报评论员文章
  • 2017做啥网站能致富手工制作大全 简单易学
  • 上海 网站开发 外包cumfoot wordpress
  • 主播网站建设四线城市做网站建设怎么样
  • 棋牌类网站开发网站下方链接图标怎么做
  • 专门做签到的网站深圳做网站d公司
  • 如何用oss做视频网站wordpress模板导航
  • 上海网站设计团队郑州网站建设有限公司
  • 汽车网站更新怎么做微商营销软件商城
  • 做那个网站的图客比较好视频网站自己怎么做的
  • 微信怎么建设网站新能源电动汽车电池价格
  • 做网站普洱定制家具网
  • 濮阳佳杰网站建设巧用不对称科技有限公司经营范围
  • 做英文网站需要多少响应式网站缺点
  • 餐饮品牌设计全案西安官网seo价格
  • 个人网站做导航网站注册网站域名有什么用
  • 论坛软文案例南京网站seo优化公司
  • 石家庄营销网站建设分销商城模式系统开发
  • 查询注册过哪些网站html网站地图生成
  • git做网站根目录创科手机网站
  • 南通网站搭建定制网页版微信怎么删除聊天记录
  • 网站改用绝对地址的好处怎样做微信挂机平台网站
  • 网站建设的心得建站之星换模板
  • 网站被安全狗拦截网络推广服务费会计账务处理