内存管理(上海贝尔:林锐)

转载 2007年09月25日 15:44:00

        程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。
7.1 内存分配方式
内存分配方式有三种:
(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。
(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。
7.2 常见的内存错误及其对策
发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走,错误又发作了。常见的内存错误及其对策如下:

相关文章推荐

关于上海贝尔实习的感想

今天是我来上海贝尔--也就是大家熟知的

STM32 上移植FreeModbus详细过程(学习总结)

一 、整体代码 下面给出一个STM32平台上使用FREEMODBUS最简单的例子,操作保持寄存器,此时操作指令可以为03,06和16; #include "stm32f10x.h" #include ...

认识UART接口

内容待添加

深入理解Android系列书籍资源分享更新

由于115网盘限制礼包下载,我现在将深入理解Android系列书籍或其他资源转移到百度网盘上,供兄弟姐妹们下载分享。1 深入理解Android:Wi-Fi,NFC和GPS卷下载地址:http://pa...
  • Innost
  • Innost
  • 2015-01-31 16:53
  • 33323

C/C++堆、栈及静态数据区详解

C/C++堆、栈及静态数据区详解五大内存分区 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变...

Win API串口通信原理及读写与操作

在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是...

简单介绍I2C总线

第7章  I2C 总线简介 ZLG7290B与微控制器的接口形式是I2C串行总线,因此有必要简要地介绍一下I2C总线协议标准。第8章还给出了用C51编写的I2C总线软件包,以供参考学习。 7.1 I2...

uart

一、UART原理及UART部件使用方法1、UART原理通用异步收发器UART,用来传输串行数据:        发送数据时,CPU将并行数据写入UART,UART按照一定格式在TxD线上串行发出;  ...

UART串口编程

基础知识: 1.波特率:每秒传输的二进制位数,bps。 2.UART用的是标准TTL/CMOS逻辑电平,可以通过MAX3232转换成RS-232逻辑电平。 RxD/TxD...

UART解释和作用

UART传输结构 UART:Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,...
  • wzwind
  • wzwind
  • 2010-11-30 09:24
  • 2422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)