存储类别分三大类: 静态存储类别 自动存储类别 动态分配内存 变量、对象 >内存管理 内存考虑效率(时间更短、空间更小) 作用域 链接、 >空间 存储器 >时间 其实存储类别(时间、空间)和数据类型 >目的都是为了描述变量(数据对象) 还有新的属性描述变量: 恒常性、易变性 >用到类型限定符的技术手 ...
分类:
编程语言 时间:
2018-11-14 12:36:21
阅读次数:
187
mysql系统结构_3_Mysql_Learning_Notes 存储层,内存结构 全局(buferpool) 只分配一次 全局共享 连接/会话(session) 针对每个会话/线程分配 按需动态分配,查询结束后释放 用于处理(缓冲,中转)查询结果 每个会话的缓冲区大小都不一样 mysql 内存占用 ...
分类:
数据库 时间:
2018-11-14 11:05:38
阅读次数:
175
1. malloc函数 函数原型:void *malloc(unsigned int size)函数的作用是:在内训的动态存储区开辟一个size个字节的连续空间,返回所分配区域的首字节地址。 可以看到,函数返回值是一个void指针,请注意,void指针不是一个可以指向任何类型数据的指针,而是 说,不 ...
分类:
编程语言 时间:
2018-11-12 20:24:24
阅读次数:
143
C++ STL之vector用法总结 1.vector是可变大小数组的序列容器 2.像数组一样,vector也采用连续储存空间来储存元素,就是说可以采用下标 对数组进行访问,大小可变,会被容器自动处理 3.本质讲,vector使用动态分配数组来存储它的元素。 当新元素插入时候,这个数组需要被重新分配 ...
分类:
编程语言 时间:
2018-11-11 14:58:23
阅读次数:
171
堆:(对象) 引用类型的变量,其内存分配在堆上或者常量池(字符串常量、基本数据类型常量),需要通过new等方式来创建。 堆内存主要作用是存放运行时创建(new)的对象。 (主要用于存放对象,存取速度慢,可以运行时动态分配内存,生存期不需要提前确定) 栈:(基本数据类型变量、对象的引用变量) 基本数据 ...
分类:
编程语言 时间:
2018-11-10 12:53:15
阅读次数:
149
@[toc] 存储类说明符 C中存储类说明符共有5个,为 `register static extern typeddef typedef`与内存存储无关。 规定: 不可以在一个声明中使用一个以上存储类说明符 。 存储类说明符用来确定变量的存储类型。 存储类和函数 函数的存储类有两种: 外部 静态 ...
分类:
其他好文 时间:
2018-11-06 19:34:42
阅读次数:
176
STM32 堆溢出 遇到的问题 最近在给旧项目添加了段代码,程序经常到某个状态就突然崩溃了,也不一定是在运行新代码的时候崩溃。检查了几遍代码,数组越界访问,除数为0,内存泄露等常见的问题都不存在。 原因 最后发现,问题出在程序中用mallc动态分配内存,却没对是否成功分配做检查。程序中,因为堆空间不 ...
分类:
其他好文 时间:
2018-11-02 00:06:46
阅读次数:
306
在C++中实现变长数组1.变长一维数组这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做://文件名: array01.cpp#include<iostream>using namespace std;int mai ...
分类:
编程语言 时间:
2018-10-27 01:28:39
阅读次数:
315
在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传 ...
分类:
编程语言 时间:
2018-10-23 21:05:33
阅读次数:
140
历史简介 linux内核运行需要动态分配内存,其中有两种分配方案: 第一种是以页为单位分配内存,即一次分配内存的大小必须是页的整数倍;第二种是按需分配内存,一次分配内存的大小是随机的。 第一种分配方案通过buddy系统实现,第二种分配方案就是通过slab子系统实现。slab子系统随内核的发展衍生出s ...
分类:
其他好文 时间:
2018-10-11 01:35:58
阅读次数:
489