b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

堆与栈之间的差异(无数次翻转文章)

电脑杂谈  发布时间:2020-06-12 20:30:11  来源:网络整理

栈堆_c 堆和栈的区别_objective-c堆和栈的区别

进行了一些修改和补充

由C / C ++编译的程序所占用的内存分为以下几部分

1. 堆栈区: 由编译器自动分配和释放,存储函数参数值和局部变量值. 它的

该操作类似于数据结构中的堆栈.

2. 堆(heap): 通常由程序员分配和释放. 如果程序员不释放它,则它可能在程序结束时由操作系统返回

接受. 请注意,它与数据结构中的堆有两个不同之处,分配方法类似于链表,呵呵.

3. 全局区域(静态区域)(静态): 将全局变量和静态变量的存储放在一起并初始化

全局变量和静态变量在同一区域,未初始化的全局变量和未初始化的静态变量彼此相邻

栈堆_c 堆和栈的区别_objective-c堆和栈的区别

一个区域. -程序结束后由系统释放.

4. 文字常量区域: 常量字符串放在此处. 程序结束后由系统释放

5. 程序代码区: 存储函数体的二进制代码.

这是由一位资深的非常详细的人写的

#include stdio.h

int a = 0;//全局初始化区 

char *p1;//   全局未初始化区    
void main(void)    
{    
  int   b;//   栈    
  char   s[]   =   abc;//   栈    
  char   *p2;//   栈    
  char   *p3   =   123456;//   123456/0在常量区,p3在栈上。    
  static   int   c   =0;//   全局(静态)初始化区    
  p1   =   (char   *)malloc(10);    
  p2   =   (char   *)malloc(20);    
  //分配得来得10和20字节的区域就在堆区。    
  strcpy(p1,   123456);//   123456/0放在常量区,编译器可能会将它与p3所指向的123456 优化成一个地方。       
}

###如何申请

堆栈:

由系统自动分配. 例如,在函数中声明一个局部变量int b. 系统会自动为堆栈上的b打开空白空间

c 堆和栈的区别_objective-c堆和栈的区别_栈堆

房间

堆:

要求程序员自行申请,并在c中指定大小malloc函数

如果p1 =(char *)malloc(10);

在C ++中使用new运算符

如果p2 =新字符[10];

但是请注意,p1和p2本身在堆栈中.

堆栈: 只要堆栈的剩余空间大于请求的空间,系统就会为程序提供内存,否则它将报告异常并提示堆栈溢出

c 堆和栈的区别_栈堆_objective-c堆和栈的区别

出去.

堆: 首先,您应该知道操作系统有一个记录空闲内存地址的链表. 当系统从程序接收到应用程序时,

它将遍历链表,找到第一个空间大于请求空间的堆节点,然后从空闲节点链表中删除该节点

删除,然后将节点的空间分配给程序. 此外栈堆,对于大多数系统而言,它将位于此内存空间中

此分配的大小记录在第一个地址上,以便代码中的delete语句可以正确释放此内存空间.

此外,由于找到的堆节点的大小不一定等于应用程序的大小,因此系统将自动替换多余的部分

将点数放回空闲列表中.

堆栈: 在Windows下,堆栈是一个扩展为低地址的数据结构,并且是一个连续的内存区域. 这句话的意思

objective-c堆和栈的区别_c 堆和栈的区别_栈堆

Si是堆栈顶部的地址栈堆,堆栈的最大容量由系统预先确定. 在WINDOWS下,堆栈的大小为2M(也可用

为1M,简而言之,它是在编译时确定的常数. 如果请求的空间超过堆栈上的剩余空间,它将

提示溢出. 因此,堆栈中的可用空间很小.

堆: 堆是一种数据结构,可以扩展到更高的地址,并且是不连续的内存区域. 这是因为系统使用链接列表进行存储

的可用内存地址

自然是不连续的,并且链表的遍历方向是从低地址到高地址. 堆的大小

受计算机系统中可用虚拟内存的限制. 这表明堆获得的空间更加灵活,更大.

系统自动分配堆栈,速度更快. 但是程序员无法控制.

堆是new分配的内存,通常较慢并且更容易出现内存碎片,但是使用起来最方便.

此外,在WINDOWS下,最好的方法是使用VirtualAlloc分配内存,他既不在堆上,也不在堆栈上

直接在进程的地址空间中保留一块内存,尽管使用起来最不方便. 但这是快速而灵活的.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-243364-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 赵构
        赵构

        我选择也觉得我要换新一下我自己的生活了

      热点图片
      拼命载入中...