嵌入式Linux上C语言编程实践--第9章 动态内存堆与栈.pptVIP

  • 6
  • 0
  • 约7.02千字
  • 约 43页
  • 2018-10-14 发布于浙江
  • 举报

嵌入式Linux上C语言编程实践--第9章 动态内存堆与栈.ppt

嵌入式Linux上C语言编程实践--第9章 动态内存堆与栈.ppt

第四部分 C语言高级编程 第9章 动态内存的堆与栈 第10章 函数指针的使用 第11章 回调函数的使用 第12章 C语言实现对象编程 在嵌入式C语言程序开发中,一个非常重要的内容就是内存的使用,尤其是动态内存的使用。 C语言中动态内存主要使用堆和栈来实现。 本章主要内容: C语言中程序的存储区域 动态内存的堆与栈的特性 C语言语言与堆、栈的对应关系 堆和栈使用的对比 9.1 程序内存区域的使用 9.1.1 静态内存与动态内存 C语言程序中数据所使用的内存分类: 静态数据存储区 只读数据区(RO Data) 已初始化的读写数据区(RW Data) 未初始化的读写数据区(BSS) 它们都是在程序的编译-连接阶段确定的,在程序运行的初始化阶段,静态存储区将在内存中开辟,其大小和位置在程序的运行过程中都是固定不变的,仅当程序结束时才会被系统收回。 动态数据存储区: 栈(stack) 堆(heap) 它们是在程序运行过程中动态分配的,其大小将在程序运行过程动态地变化。 典型的动态内存管理形式:堆内存和栈内存的分配方向通常是相向的 栈内在从高地址向低地地址分配 堆内存从低地址向高地址分配 动态内存的存储结构 栈 使用线性存储的方式 堆 使用链表来实现 C语言程序的存储区如图9-1所示。 9.1.2 C语言中的动态内存 1.栈内存 栈是一种先入后出FI

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档