美文网首页
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);

相关文章

  • Objective-C 内存管理基础

    前言 之前的两篇拙文C语言-内存管理基础、C语言-内存管理深入 介绍了关于C语言在内存管理方面的相关知识。但是对于...

  • 学了指针没学动态内存一切都白搭!C语言基础教程之内存管理

    C语言内存管理 本文将讲解 C 中的动态内存管理。C 语言为内存的分配和管理提供了几个函数。这些函数可以在头文件中...

  • C相关文章

    1. C语言菜鸟学院教程 2. C语言内存管理

  • Objective-C-(二)内存管理

    由于Objective-C是基于C语言的,在了解Objective-C内存管理前应该先了解下C语言的内存模型。 简...

  • iOS面试:iOS内存分区

    OC语言是C语言的超集,所以先了解C语言的内存模型的内存管理会有很大的帮助。C语言的内存模型分为5个区:栈区、堆区...

  • JavaScript 内存机制

    每种编程语言都有它的内存管理机制,比如C语言这样的底层语言,有原生内存管理接口,像malloc()动态的分配内存空...

  • Objective-C 引用计数的原理和内部实现

    背景 - 内存管理 Objective-C 建立在 C 语言的基础上。C 语言程序的内存布局主要包括: 栈:由编译...

  • Android NDK开发之旅4--C语言--动态内存分配

    Android NDK开发之旅 目录 C 内存管理函数 C 语言为内存的分配和管理提供了几个函数。这些函数可以在 ...

  • C语言内存管理

    栈 1.栈内存分配从地址大的开始分配 2.栈内存中存储的数据会自动释放 3.栈的内存大小有限, 所以特别在使用递归...

  • C语言----内存管理

    动态分配内存 编程时,如果预先知道数组的大小,那么定义数组时就比较容易。例如,一个存储人名的数组,它最多容纳 10...

网友评论

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

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