您的位置:首页 > 其它

关于内存的一点小知识

2017-11-10 15:26 274 查看
`

1、内存简单的分为以下几个部分:

栈区

容量小,存储速度快,适合存储生命周期短的数据,栈中存储变量(局部变量,函数的参数)。特点:先进后出。程序结束后由编译器自动分配释放。

堆区

容量大,存取速度慢,适合储存生命周期长的数据,适合储存对象。适应动态内存分配(malloc)。程序结束后由程序员分配释放。

静态区

存放全局变量、静态变量,初始化的全局变量与静态变量在一块区域,未初始化的静态变量和未初始化的静态变量在相邻的另一块区域,程序结束后由系统释放。

文字常量区

存放常量字符串,程序结束后由系统释放。

程序代码区

存放函数体的二进制代码

`2、“关于栈溢出的解释:

栈具有一定的空间,当你把在栈上的空间用完之后就会出现栈溢出现象。例如:一个瓶子里最多只能装它所容纳的液体,而你非要多装一些,容纳不下,则会溢出。

3、关于数据在内存中的存储方式

1)小端存储:把一个数据的低字节序的内容存储在低地址处,高字节序的内容存储在高地址处。

2)大端存储:把一个数据的高字节序的内容存储在低地址处,高字节序的内容存储在低地址处。

要理解这些概念,我们必须知道内存中的地址的排序方式,那它是怎样的呢?

内存中的地址都是从低到高排列的。

举个简单的例子:

比如:11223344

要把这个数字存储在内存中它就有两种方式

–假设从左到右的地址是由低到高的

- 44 33 22 11

这就是把这位数的低字节序存储到了低地址处,因此它属于小端存储

-11 22 33 44

-把高字节序存储到了低地址处,则他是大端存储>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内存分配