首页 > 其他 > 详细

一步一步学UC(一) - 内存分配

时间:2014-01-21 09:50:01      阅读:567      评论:0      收藏:0      [点我收藏+]

一、目标

1、亲手完成练习

2、达到5000到20000行代码量

二、过程体系

语言

C语言

C++

算法

算法

数据结构

基础(系统核心(kernel)编程)

平台:

linux/unix      window  MacOSX

PC机 服务器 ARM

操作系统应该具备如下能力

设备驱动 进程管理 内存管理 文件目录 系统管理 IO

基础学习过程:

内存管理

文件目录

IO

进程管理

创建

控制

通讯

同步

线程管理

创建

同步

通信

应用:

网络

数据库(pro *c/c++)

UI

shell

XML处理

分布式和中间件

web服务

OpenGL


定位:提高编程能力


三 、内存管理

硬件层次的内存管理

内存结构管理

内核层次的内存管理

内存映射

堆扩展

语言层次:c: malloc

c++: new

数据结构:

STL

智能指针

问题:

malloc怎么分配空间

malloc与new的关系

linux对内存的描述

/proc/pid/    - 存放着进程运行时的所有信息

任何程序的内存空间分成4个基本部分

代码区

全局栈区

理解程序的变量与内存空间的关系

堆栈是一种数据结构

查看程序的内存地址


理解malloc的工作原理

malloc使用一个链表维护分配的空间链表的由已经分配的空间上一个空间数据下一个空间等信息构成

不要越界访问,容易破坏维护结构

c++的new与malloc的关系

new的实现使用的是malloc来实现的

区别:new使用后还要初始化变脸

如果是UDT类型还要调用指定的构造器

delete调用free实现,负责调用析构器然后再调用free


new 与 new[ ]的区别

new只调用一个构造器初始化

new【】循环对每个区域调用构造器 

一步一步学UC(一) - 内存分配

原文:http://blog.csdn.net/ctxbloger/article/details/18231743

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!