博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式Linux C编程 03
阅读量:6816 次
发布时间:2019-06-26

本文共 508 字,大约阅读时间需要 1 分钟。

hot3.png

3.2.1、C语言程序所占内存分类

  • 栈(stack):由编译器自动分配释放,存放函数的参数值、局部变量的值、返回地址等
  • 堆(heap):一般由程序员动态分配(调用malloc()函数)和释放(调用free()函数)
  • 数据段(data):存放的是全局变量、静态变量、常数。根据存放的数据,又可分为
    • 普通数据段(可读可写/只读数据段,存放静态初始化的全局变量或常量)
    • BSS数据段(存放未初始化的全局变量)
  • 代码段(code):用于存放程序代码
/*C语言中数据的内存分配*/int a = 0; /*可读可写数据段*/char *p1   /*BSS段*/void main(){    int b;    /*b在栈*/    char s[] = "sbc";    /*s在栈,“abc”在常量区*/    char *p2;    /*ps在栈*/    static int c = 0;    /*可读可写数据段*/    p1 = (char *) malloc(10);    /*分配的区域在堆区*/}

 

转载于:https://my.oschina.net/u/877598/blog/1021854

你可能感兴趣的文章
iOS正则表达式
查看>>
关于javascript的this指向问题
查看>>
Java程序员必须掌握的spring boot
查看>>
关于移动端适配,你必须要知道的
查看>>
Promise的理解和用法
查看>>
java B2B2C Springboot电子商城系统-高可用的服务注册中心
查看>>
Dubbo的总体架构
查看>>
Spring Cloud微服务架构代码结构详细讲解
查看>>
以太经典硬分叉:矿工欢喜、投资者欢庆、社区高兴的“三赢”之举
查看>>
我的友情链接
查看>>
LVS启(禁)用成员
查看>>
innobackupex 备份报错
查看>>
2016 IT 运维工作计划及学习
查看>>
将一个数的二进制位模式从左到右翻转并输出
查看>>
我的友情链接
查看>>
加速与缓存技术之Varnish
查看>>
jQuery学习之jQuery Ajax用法详解
查看>>
安装 memchached Linux
查看>>
centOS6.5下rpm安装mysql5.6.23
查看>>
MicroProfile + Kubernetes,轻松搞定Java 微服务
查看>>