摘要:
栈增长和大端/小端问题是和CPU相关的两个问题。在内存管理中,与栈对应是堆。对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;对于栈来讲,它的生长方式是向下的,是向着内存地址减小的方向增长。在内存中,“堆”和“栈”共用全部的自由空间,只不过各自的起始地址和增长方向不同,它们之间并没有一个固定的界限,如果在运行时,“堆”和 “栈”增长到发生了相互覆盖时,称为“栈堆冲突”,系统肯定垮台。在常见的x86中内存中栈的增长方向就是从高地址向低地址增长。我们可以通过一些代码来判断栈的增长方向:#include<stdio.h>staticintstack_dir;staticvoid 阅读全文
posted @ 2012-06-22 20:47
Mr.Rico
阅读(15083)
评论(3)
推荐(0)
摘要:
之前有篇文章讨论过C/C++中的内存存储问题:http://www.cnblogs.com/xkfz007/articles/2490175.html这一篇是主要介绍C++中堆和栈的区别。 C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。 C++内存区域分为5个区域。分别是堆,栈,自由存储区,全局/静态存储区和常量存储区。 栈:由编译器在需要的时候分配,在不需要的时候自动清除的变量存储区。里面通常是局部变量,函数参数等。 堆:由new分配的内存块,他们的释放 阅读全文
posted @ 2012-06-22 20:12
Mr.Rico
阅读(372)
评论(0)
推荐(0)
摘要:
《C++ Templates》读书笔记(一):模板参数2009-08-17 12:48有三种模板参数(形参):(1)类型参数(这是使用得最多的)(2)非类型参数(3)模板的模板参数类型参数: 类型参数是通过关键字typename或者class引入。关键字后面必须是一个简单的标识符,后面用逗号来隔开下一个参数声明,等号代表接下来的是缺省模板实参,一个封闭的尖括号(>)表示参数化子句的结束。 在模板声明内部,类型参数的作用类似于typedef名称。例如,如果T是一个模板参数,就不能使用诸如class T等形式的修饰名称,即使T是一个要被class类型替换的参数也不可以。 template & 阅读全文
posted @ 2012-06-22 09:04
Mr.Rico
阅读(591)
评论(0)
推荐(0)

浙公网安备 33010602011771号