内存 SRAM:静态内存 特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用 DRAM:动态内存 特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。 单片机中:内存需求量小,而且希望开发尽量简单,适合全部用SRAM 嵌入式系统:内存需求量大,而且没有NorFl ...
分类:
其他好文 时间:
2018-09-27 14:18:56
阅读次数:
142
Linux内核之进程地址空间 内核中的函数以相当直接了当的方式获得动态内存: __get_free_pages 或 alloc_pages从分区页框分配器中获得页框; kmem_cache_alloc或kmalloc使用slab分配器为专用或通用对象分配块; vmalloc获得一块非连续的内存块; ...
分类:
系统相关 时间:
2018-09-12 11:12:54
阅读次数:
158
1.动态内存分配 C语言中的一切操作都是基于内存的 变量和数组都是内存的别名,如何分配这些内存由编译器在编译期间决定 定义数组的时候必须指定数组长度,而数组长度是在编译期就必须决定的内存的分配与释放: malloc和free:malloc和free用于执行动态内存分配和释放 malloc所分配的是一块连续的内存,以字节为单位
分类:
其他好文 时间:
2018-09-12 11:03:35
阅读次数:
169
概述 + 资源就是一旦用了它,以后必须还给系统的东西。C++中最常用的资源就是 动态内存分配 。其它的资源还包括 文件描述符器、互斥锁、图形界面中的字型和笔刷、数据库连接、以及网络socket 。 + 无论是哪一种资源,我们都要确保当自己使用完之后还给系统。 条款13:以对象管理资源 1. 资源并没 ...
分类:
其他好文 时间:
2018-09-11 21:17:23
阅读次数:
126
问题: 动态内存申请一定成功吗? 问题: new语句中的异常是怎么抛出来的? 一般我们会在new_handler函数中进行内存的整理,整理之后再次申请。 问题: 如何跨编译器统一new的行为,提高代码移植性? 全局定义new就是全局new操作符的重载。 最后两种方法是推荐的做法。 使用nothrow ...
分类:
其他好文 时间:
2018-09-08 20:00:12
阅读次数:
128
搞清楚指针和引用的本质区别, 需要站在语言设计者的角度看待问题; 一切设计都是为了让问题变得更简单. ...
分类:
其他好文 时间:
2018-09-06 02:59:53
阅读次数:
189
兜兜转转又用到了c。c的一些基本却忘记的差不多了(笑哭)!! 动态内存分配 当malloc完将返回的指针类型强制转换成想要的类型后,指针中存有该指针的数据结构,而分配的内存恰好可用于该数据结构。 链表 1、使用动态内存存储 2、使用指针对其操作时,有两种方式。(1)、使用(*point).来进行操作 ...
分类:
其他好文 时间:
2018-09-06 02:35:48
阅读次数:
170
动态内存分配的意义: malloc和free: 注意: 思考: malloc(0)将返回什么? 运行结果如下: 可以看到,返回了具体的地址。 我们所说的内存包括起始地址和长度。我们平时说内存的时候更多的是关注起始地址,而忽略了长度。 如果动态的综合这两部,我们使用malloc(0)返回了一个地址就不 ...
分类:
其他好文 时间:
2018-08-28 23:56:40
阅读次数:
339
第12章 动态内存 12.1 智能指针 shared_ptr<T> make_shared<T>(args) 直接初始化 new int(10); 默认初始化 new int; 值初始化 new int(); 由内置指针(而不是智能指针)管理的动态内存在被显示释放前一直都会存在。 最好坚持只使用智能 ...
分类:
编程语言 时间:
2018-08-26 16:49:20
阅读次数:
190