美文网首页
内存分配浅析

内存分配浅析

作者: 夕阳下的不回头 | 来源:发表于2017-11-29 08:51 被阅读41次

    程序的内存存储的内容如图所示

    静态存储区主要分配全局变量和静态变量

    从栈上分配:

    栈上存放函数参数值 局部变量值等 在执行函数调用时 系统在栈上自动为函数内部的局部变量及形参分配内存,函数执行结束时,自动释放这些内存。

    从堆上分配:

    在程序运行期间,用动态内存分配函数来申请的内存都是从堆上分配的,动态内存的生存期由程序员自己来决定。

    动态内存分配函数void* malloc (unisigned int n)  申请n个字节的内存空间

    常用的方式例如 int *p=(int*)malloc(10*sizeof(int));//申请了10个int型的空间 也就是10个int大小的整型动态一维数组

    calloc(int number, int n) 申请number*n大小字节的空间

    栈向下生长 这个下指的是低地址端    而堆是向上生长  这个上指的是高地址端(这玩意和图片无关哈)

    另外 栈的空间比较小 是M级  而堆比较大 是G级  所以当我们申请大容量的内存时还是使用堆

    相关文章

      网友评论

          本文标题:内存分配浅析

          本文链接:https://www.haomeiwen.com/subject/sqaybxtx.html