C语言-内存分配

2020年10月1日 102点热度 0条评论 来源: Baaaan

内存五个区域

  • 栈区
    由编译器自动编译释放,比如:

//此时将存储在常量区的字符串suica拷贝到栈区.
char string[] = "suica";
  • 堆区
    堆区需要程序员手动分配,手动释放.
    在C语言中可使用malloc进行分配:

//给指针p分配一个大小的内存空间
int* p = (int *) malloc (1);
  • 静态区
    只初始化一次;如果初始化没给值,默认为0;只有程序退出才释放.
    将变量定义前加static则存储在静态区

static int a = 5;
  • 常量区
    存放常量字符串,程序结束后系统释放.

int a = 10;
  • 代码区
    存放程序的二进制代码

    原文作者:Baaaan
    原文地址: https://segmentfault.com/a/1190000003911562
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。