CC程序的内存分配.pptVIP

  • 20
  • 0
  • 约1.35千字
  • 约 12页
  • 2018-09-23 发布于辽宁
  • 举报
CC程序的内存分配.ppt

堆和栈的区别 一、基本概念 1.栈区(stack) 由编译器自动分配、释放 存放函数的参数值、局部变量的值等 类似于数据结构中的栈 2.堆区(heap) 一般由程序员分配、释放, 若程序员不释放,程序结束时可能由OS回收。 与数据结构中的堆不同,分配方式类似于链表 3、初始化数据区/静态数据区(static) 全局变量、静态变量、常量数据的存储 程序结束后由系统释放 4、未初始化区 常量字符串 程序结束后由系统释放 5、代码区 存放CPU执行的机器指令 可共享、只读的 二、例子程序 //main.cpp int a = 0; (全局初始化区) char *p1;(全局未初始化区) main() { int b; 栈 char s[] = abc; 栈 char *p2; 栈 char *p3 = 123456; 123456\0在常量区,p3在栈上。 static int c =0; 全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); 分配得来的10和20字节的区域就在堆区 注意

文档评论(0)

1亿VIP精品文档

相关文档