林锐的《高质量编程》学习笔记——内存分配方式

原创 2012年03月28日 15:11:39

内存分配有三种方式:

(1)

从静态存储区域分配。内存在程序编译时候就已经分配好,这块内存在程序的整个运行期间都存在。

例如:全局变量,static变量。


(2)

在栈上创建。再执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时,这些存储单元自动被释放。

栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

例如:局部变量。


(3)

从堆上分配,亦可以成为动态分配内存。程序在运行的时候用malloc或者new申请任意多少的内存,程序员自己负责在何时用free或者delete释放内存。

动态内存的生存期由我们决定,使用非常灵活,但是问题也最多。

林锐的《高质量编程》学习笔记——指针参数传递内存

方法一:void get_memory(char **p, int num) { *p = (char *)malloc(sizeof(char) * num); } int main() { ...

高质量C++编程指南学习笔记3-4章---thanks to林锐

第三章     命名规则 命名规则应该是给变量、函数和类的命名规则。耳闻过“匈牙利”命名规则。其主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。如所有字符变量都以’ch’为前缀。若一个变...
  • mwj_88
  • mwj_88
  • 2013年01月30日 17:40
  • 658

高质量C++编程指南学习笔记第8章---thanks to林锐

第八章     C++函数的高级特性 对比C语言的函数,C++增加了重载、内联、const和virtual四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const与virt...
  • mwj_88
  • mwj_88
  • 2013年02月18日 11:04
  • 550

《高质量C++/C编程指南(林锐)》学习笔记

1. 不可以将布尔变量直接和TRUE、FALSE、1、0进行比较。应该用if(flag)或者if(!flag)。     整型变量直接用”==“或者”!=“与0进行比较。 浮点变量不可以直接用”=...

高质量C++编程指南学习笔记第11章---thanks to林锐

第十一章     其他编程经验 11、1利用const提高函数的健壮性          const更大的魅力是它可修饰函数的参数、返回值、甚至函数的定义体。 11.1.1用const修饰函数的...
  • mwj_88
  • mwj_88
  • 2013年02月21日 10:42
  • 637

高质量C++编程指南学习笔记第9章---thanks to林锐

第九章     类的构造函数、析构函数与赋值函数 类对象之间的赋值只是对数据成员赋值。 每个类只有一个析构函数和一个赋值函数,但可有多个构造函数(包含一个拷贝构造函数,其他的称为普通构造函数)...
  • mwj_88
  • mwj_88
  • 2013年02月19日 10:22
  • 555

C/C++内存分配方式总结——来自《高质量编程指南》

C/C++内存分配方式有3种:         (1)从静态存储区域分配。内存在程序编译的时候就已经分配好了(即已经编址),这些内存在程序的整个运行都存在。例如全局变量,static变量等。   ...

c/c++高质量编程(林锐)读书笔记二

1.2 头文件的结构 头文件由三部分内容组成: (1)头文件开头处的版权和版本声明(参见示例1-1)。 (2)预处理块。 (3)函数和类结构声明等。 假设头文件名称为graphics.h,头...

c/c++高质量编程(林锐)笔记一

【规则6-3-2】在函数体的“出口处”,对return语句的正确性和效率进行检查。      如果函数有返回值,那么函数的“出口处”是return语句。我们不要轻视return语句。如果return...

《林锐-高质量C/C++编程指南》笔记

1.if语句规则 1.1 不可将布尔变量直接与TRUE、 FALSE 或者1、 0 进行比较。 根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE 的值...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:林锐的《高质量编程》学习笔记——内存分配方式
举报原因:
原因补充:

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