美文网首页
C语言内存管理

C语言内存管理

作者: 奋斗的小老鼠 | 来源:发表于2016-06-25 18:09 被阅读22次

    存储区划分

    栈区:在函数内部定义的局部变量和局部数组,都存在栈区,栈区空间由系统管理,函数调用时开辟空间,函数执行结束后自动收回。

    堆区:空间由开发人员手动开辟,手动收回。

    全局(静态)区:存放全局变量和静态变量,空间有系统管理,程序执行开辟空间,程序结束空间收回,在程序执行期间一直存在。
    常量区:存储常量。1.整型常量。2.浮点型常量。3.字符型常量。常量区的内容不能被更改,空间由系统管理,声明周期和应用程序声明周期一致。
    代码区:存放程序指向的CPU指令,告诉计算计如何来执行程序。

    屏幕快照 2016-06-25 下午5.44.00.png

    堆区空间管理

    //    malloc:在堆区开辟size大小的空间
    //    
    //    void * :泛型,可以代表所有的指针类型。int *,char*,short*.
    //    
    //    free().释放堆区空间,只是标记删除,不清除内容。
    
        char *p = malloc(8);//p存储区域空间是首地址
        strcpy(p, "iphone");//往堆区空间上存储字符串
        printf("%s\n",p);
        free(p);//释放p指向的堆区空间,释放空间,只是标记删除,不清除内容。
        p = NULL;//指向无效的空间,防止野指针。
        printf("%s\n",p);
    

    相关文章

      网友评论

          本文标题:C语言内存管理

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