空指针究竟指向了内存的哪个地方?
如果仅仅声明一个指针,而没有任何赋值,那么这个指针是野指针,它会指到VM的任何位置,碰到异常操作,比如对只读区写操作,就会引起硬件中断产生core,也就是通常的段错误。
良好的编程风格是将指针永远都可控,也就是这个指针的地址,程序可控,通常,对于不使用或初始的指针都将其地址置为0,这是约定俗成的,就如同,我们经常使用的进制一样,你非用一个别人都不用的进...
分类:
编程语言 时间:
2014-05-15 07:04:34
阅读次数:
241
有的时候,处于内存中的数据并不是连续的。那么这时候,我们就需要在数据结构中添加一个属性,这个属性会记录下面一个数据的地址。有了这个地址之后,所有的数据就像一条链子一样串起来了,那么这个地址属性就起到了穿线连结的作用。
链表有:单链表,双链表,单循环链表,双循环链表。
理解单链表,其他几种也就大同小异。
相比较普通的线性结构,链表结构的优势是什么呢?我们可以总结一下:
(1)...
分类:
编程语言 时间:
2014-05-15 05:48:01
阅读次数:
266
利用默认的内存管理函数new/delete或malloc/free在堆上分配和释放内存会有一些额外的开销。
系统在接收到分配一定大小内存的请求时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法(例如分配最先找到的不小于申请大小的内存块给请求者,或者分配最适于申请大小的内存块,或者分配最大空闲的内存块等)找到合适大小的空闲内存块。如果该空闲内存块过大,还需要切割成已分配的部分和较小的空...
分类:
其他好文 时间:
2014-05-15 02:56:28
阅读次数:
227
散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。
一个通俗的例子是,为了查找电话簿中某人的号码,可以创建一个按照人名首字母顺序排列的表(即建立人名x到首字母F(x)的一个函数关系),在首...
分类:
编程语言 时间:
2014-05-15 02:27:50
阅读次数:
497
1. 结构的基础知识
跟数组一样是成员的集合,但与数组有很大的区别,结构的元素不能通过下标法来访问,因为各个成员的大小可能不同,但是数组可以,因为数组元素保持一致。
1.1 结构声明
struct tag {member-list }
variable-list ;
上面黑色部分是可选部分,但是必须同时出现两个。
实例一:下面是实例:
struct{
i...
分类:
编程语言 时间:
2014-05-14 21:47:06
阅读次数:
522
题意:移除数组中出现的给定元素,并返回移除元素数组长度。要求在数组上操作
思路:遍历数组,将除给定元素外的其他元素赋值给“新数组”,不过这个“新数组”还是在原来的“旧数组”的内存空间
因为遍历旧数组的下标总大于等于新数组的下标,所以赋值并不会影响到还没有遍历到的元素
复杂度:时间O(n), 空间O(1)...
分类:
其他好文 时间:
2014-05-14 21:35:52
阅读次数:
257
DSP访问外存时内存保护的问题,原因是CPU访问了自己没有访问权限的外部内存(如share memory即MSM或者DDR3,相对于corePac内部的L1,L2内存而言),如CPU访问DDR3中的无权限内存时(即在当前CPU的配置中,没有设置对该内存的访问权限),硬件会触发MDMA bus error event(VbusM error event 110,CPU访问corePac内部资源L1,...
分类:
其他好文 时间:
2014-05-14 21:23:30
阅读次数:
300
openstack内存复用处理方法1、opensctack支持内存复用,openstck配置文件中默认的复用比例是1.5,但是这个比例可以调节,比例从几倍到几十倍。这个复用还是基于底层的KVM的机制。在openstack中想调整这个复用比例需要修改nova的配置文件。2、修改nova的配置文件如果是用fule机..
分类:
其他好文 时间:
2014-05-14 18:30:09
阅读次数:
278
fieldValueCache默认是存在的。如果没有在solrConfig.xml中配置,那么其初始大小10,最大10000,不会autowarm。在PC上开发时,会有内存溢出的风险。
分类:
其他好文 时间:
2014-05-14 16:35:14
阅读次数:
231
linux执行free命令显示如下:[root@Linux~]#free
totalusedfreesharedbufferscached
Mem:805434418346246219720060528369948
-/+buffers/cache:14041486650196
Swap:524280144524136第1行total内存总数:8054344used已经使用的内存数:1834624free空闲的内存数:6219720shared当前..
分类:
系统相关 时间:
2014-05-14 15:56:09
阅读次数:
329