尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么? 主要有三种类型:内存泄露、内存碎片和内存崩溃 内存崩溃是内存使用最严重的结果,主要原因有数组访问越界、写已经释放的内存、指针计算错误、访问堆栈地址越界等等。碎 ...
分类:
其他好文 时间:
2020-04-11 23:59:52
阅读次数:
119
Boolean 在 Go 中,布尔值的类型为 bool,值是 true 或 false,默认为 false。 // 示例代码 var isActive bool // 全局变量声明 var enabled, disabled = true, false // 忽略类型的声明 func test() ...
分类:
其他好文 时间:
2020-04-11 12:46:34
阅读次数:
77
动态主机配置协议是一种对用户IP地址进行动态管理和配置的技术,采取C/S模式。允许计算机动态获取IP地址,能够分配其他配置参数。可降低客户端的配置和维护成本,方便集中管理。 5.1 分配机制 动态分配机制:通过DHCP为主机分配一个有使用期限(租期)的IP地址。 静态分配机制:通过DHCP为指定主机 ...
分类:
其他好文 时间:
2020-04-06 00:16:08
阅读次数:
70
堆栈是一种数据结构,指的是数据存取的方式,当定义一个变量时,内存会开辟一段空间 栈(Stack): 先进后出(FILO),在栈顶做插入(压栈)和删除操作(出栈)。 队列: 先进先出(FIFO),在队头做删除操作,在队尾做插入操作。 堆: 堆和它们不同,代码执行时系统动态分配,不存在是先进后出还是先进 ...
分类:
其他好文 时间:
2020-04-05 22:40:44
阅读次数:
97
? 避免死锁同样属于事先预防的策略,但是并不是事先采取某种限制措施来破坏死锁的必要条件,而是在资源的动态分配过程中,防止系统进入不安全状态,以避免发生死锁。避免死锁这种方法对资源的分配限制条件较弱(相比于预防死锁),以期望获得更好的系统性能。 ? 关于安全状态和不安全状态的概念,可以参看这篇博文。 ...
分类:
编程语言 时间:
2020-03-31 19:00:55
阅读次数:
168
在确保new动态分配的内存空间在使用结束之后,释放是一件麻烦事。C++11模板库的头文件中定义的智能指针,即shared_ptr模板,就是用来解决这个问题的。 它是将new运算符返回的指针p交给一个shared_ptr对象“托管”,就不用担心要在哪里写delete p语句 实际根本不需要编写这条语句 ...
分类:
编程语言 时间:
2020-03-30 23:06:56
阅读次数:
89
时代发展到现在,如今的内存动态分配与内存回收技术已经相当成熟,一切看似进入了“自动化”时代,不免发出疑问:"为啥我们还要了解垃圾收集和内存分配?" ...
分类:
其他好文 时间:
2020-03-30 11:07:50
阅读次数:
67
vector 线性的动态分配存储空间。定义如下 template <class T, class Alloc = alloc> class vector { public: // 类型相关定义 typedef T value_type; typedef value_type* pointer; ty ...
分类:
其他好文 时间:
2020-03-27 16:51:10
阅读次数:
70
内容 1. 动态内存和智能指针 2. 动态数组 3. 使用库:文本查询程序 4. 总结 0. 摘要 动态分配的对象(dynamically allocated objects)的生命(lifetime)独立于其被创建的地方,他们一直会存在到被明确释放(free)。 为了让使用动态分配的对象更安全,库 ...
分类:
编程语言 时间:
2020-03-25 09:15:20
阅读次数:
87
由上图可以看出: 堆中分为新生代(占堆1/3内存)和老年代(占堆2/3内存), 新生代又分为Eden区(占新生代内存的8/10)和survivor区(占新生代内存的2/10), survivor区又分为from区和to区(各占新生代内存的1/10) 我们知道new出来的对象都是方在堆里面,那么具体在 ...
分类:
其他好文 时间:
2020-03-21 18:25:48
阅读次数:
56