来看一个网上很流行的经典例子:
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); 堆
}
堆和栈的第一个区别就是申请方式不同:栈(英文名称是stack)是系统自动分配空间的,例如我们定义一个 char a;系统会自动在栈上为其开辟空间。而堆(英文名称是heap)则是程序员根据需要自己申请的空间,例如malloc(10);开辟十个字节的空间。由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问。而堆上的数据只要程序员不释放空间,就一直可以访问到,不过缺点是一旦忘记释放会造成内存泄露。

一个简单的内存分配例子相关推荐

  1. glibc版本查看_[译] 写一个简单的内存分配器(替换glibc中的malloc函数)

    本文介绍如何用c语言实现一个简单的内存分配器,可替换glibc中的 malloc(), calloc(), realloc(), free(). 这是一篇入门级别的文章,所以不会介绍所有的细节. 代码 ...

  2. 实现自己的operator new和operator delete以及实现一个简单的内存池管理类

    为什么有必要写自己的operator new和operator delete? 为了效率.缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也使得在某些特 ...

  3. 一个简单的epoll测试例子

    一个简单的epoll测试例子 一段简单的epoll测试例子,编译运行后可以直接用浏览器访问localhost来测试. 1 #include <unistd.h> 2 #include &l ...

  4. 一个简单的三层架构例子(.NET入门)

    最近开始学习.NET 用的是c# 目前要用三层架构的模式开发一个简单的图书管理系统,不过以为刚接触这门技术.做起来分外吃力,甚至连究竟要写些什么都不清楚. 于是乎上网到处找寻三层架构的基础入门知识,终 ...

  5. 一个简单的iBatis入门例子

    一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. ibatis-2.3.4.726.jar ojdbc14.jar 2.创建类com/ ...

  6. C语言游戏脚本:一个简单的内存脚本!

    通过 C 语言编写一个简单的外挂,通过 API 函数修改游戏数据,从而实现作弊功能 ● 对象分析 ● 要用的 API 函数简单介绍 ● 编写测试效果 ● 总体评价 对象分析 本次游戏对象为 Super ...

  7. C++中运行一个程序的内存分配情况及qt中的内存管理机制

    一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) - 一 ...

  8. linux下glew例子,一个简单的GLSL Shader例子

    本例子选自OpenGL Shading Language中的第一个Shader例子,使用颜色平滑地表示一个表面的温度.温度及其颜色的范围在应用程序中进行设置. //先看顶点着色器temp.vert: ...

  9. 一个简单的规则引擎例子

    本例使用的规则引擎包是RulesEngine,关于RulesEngine的介绍,请自行补充,这里只是一个极简单使用场景. 例子大体就是用户有一些优惠券,系统会根据用户订单情况,筛选可以使用的优惠券供用 ...

最新文章

  1. 韵乐x5最佳参数手动_诺基亚X5、vivoZ1青春版、海信彩墨屏阅读手机A5C对比
  2. 【 FPGA 】时钟抖动浅记
  3. C++对象模型探索 / 子类的内存布局
  4. KMP算法的JavaScript实现
  5. 怎么使用java官方demo?
  6. 清华大学 2011 春季学期 lt;现代软件工程gt; 课程表
  7. Linux设备驱动程序学习(2)-调试技术
  8. 你为什么选择计算机这个专业英语,怎样选择计算机专业,英文作文:为什么选择计算机作为你的专业...
  9. loop在python中什么意思_在python中使用loop打开多个文件
  10. 二叉树中和为某一值的路径(三)(C++)
  11. 根据error_log发现图片木马,被上传到图片文件夹
  12. 东芝2303am维护清零_东芝复印机维修代码大全
  13. 【PMP】风险应对策略
  14. 如何用WGDI进行共线性分析(上)
  15. 程序员接私单被警方抓走,企业应不应该起诉程序员赔偿?
  16. 对HTML 标签语义化的理解,常见的语义化标签有哪些?
  17. python画图y轴在右侧_Python 使用matplotlib画图添加标注、及移动坐标轴位置
  18. CNCERT发布通报:大量家用路由器DNS遭黑客篡改
  19. IGBT器件选型参考
  20. CD光盘中CDA格式转音频文件

热门文章

  1. ios解锁动态图片_iOS 苹果开机启动的 滑动来解锁动画
  2. 检测1的个数_冲床电永磁夹紧系统(PMCS),实现1分钟的快速换模~
  3. python mssql 报表_Python从mssql向SQLite插入表
  4. java socket 异常处理_Java Socket常见异常处理 和 网络编程需要注意的问题
  5. lamp php5.5,CentOS 5.5快速搭建Apache+PHP5+MySQL完美Web服务器(LAMP)
  6. 前端遮罩层实现_css遮罩层怎么做?
  7. python数据接口设计_Python接口与归一化设计
  8. 来看看,他的嵌入式之旅!
  9. 「第一篇」大学生电子设计竞赛,等你来提问。
  10. 大学学计算机的有作业吗,有没有电脑高手,大学计算机专业的作业