空指针究竟指向了内存的哪个地方?
如果仅仅声明一个指针,而没有任何赋值,那么这个指针是野指针,它会指到VM的任何位置,碰到异常操作,比如对只读区写操作,就会引起硬件中断产生core,也就是通常的段错误。
良好的编程风格是将指针永远都可控,也就是这个指针的地址,程序可控,通常,对于不使用或初始的指针都将其地址置为0,这是约定俗成的,就如同,我们经常使用的进制一样,你非用一个别人都不用的进...
分类:
编程语言 时间:
2014-05-15 07:04:34
阅读次数:
241
题意:判断一个链表中是否有环
思路:快慢指针,如果有环,最终快慢指针会在非NULL相遇
注:用到fast->next前先要确保fast非NULL,要用fast->next->next前先要确保fast,fast->next非NULL
复杂度:时间O(n), 空间O(1)
相关题目:Linked List CycleII...
分类:
其他好文 时间:
2014-05-15 07:01:57
阅读次数:
219
题意:将已排序的链表中所有重复的元素移除
思路:
三个个指针,pre, cur, next
一个布尔变量is_appear,表示cur指针指向的值之前是否已经出现过
检查cur, next指向的节点的值是否相同,
相同的话,删除cur
不同的话,如果is_appear为true,删除cur,否则不删除
删除的话,只移动cur, next指针
不删除的话,要移动pre, cur, next三个指针
复杂度:时间O(n),空间O(1)...
分类:
其他好文 时间:
2014-05-15 02:54:32
阅读次数:
262
题意:移除链表的倒数第n个元素
思路:
两个指针p, q,
p先走n步,然后p,q一起走,当p走到尾的时候,q->next就是要删除的节点
复杂度: 时间O(n),空间O(1)...
分类:
其他好文 时间:
2014-05-15 02:53:13
阅读次数:
241
#include #include #include #include int main(int
argc, char **argv){ /* 这个是给str分配存储字符串地址的空间 */ char **str =
(char**)malloc(sizeof(char*)*256); /* 这个是给...
分类:
系统相关 时间:
2014-05-15 02:05:47
阅读次数:
313
当kmp在母串中匹配到子串之后,删去子串相当于把失配指针往回退到匹配位置的前一个,如果只回退一次的话,直接用数组就可以处理失配指针了,但是本题可能删除后存在多个子串,所以用栈把失配指针位置先存起来,然后找到一次把len长度的失配指针删去,然后栈顶元素就是第一句话说的回退出匹配位置的前一个了。
为了方便调用函数,把以前的kmp改成了接口,方便使用,这样就不用开全局变量的数组了,代码看起来更符合工作...
分类:
其他好文 时间:
2014-05-14 20:20:53
阅读次数:
362
做一件事情首先应该知道它的目的是什么。
container_of的目的:如何通过结构中的某个变量获取结构本身的指针。
总体思路:假想一下,你的结构体中有好几个成员,你如何通过里面的“任一成员”获取
整个结构体的首地址呢。container_of的做法就是通过typeof定义一个与“任一成员”同类型
的指针变量pvar_a(假设变量名就是pvar_a),并让指针变量pvar_a指向这个“...
分类:
系统相关 时间:
2014-05-14 19:56:15
阅读次数:
494
对于c++面向对象一直很疑惑,这次决定下功夫把它弄明白一、派生类和基类之间的类型转换首先理解,派生类含有基类的所有成分,只不过有些就算在派生类的成员函数也不能访问而已。(1)派生类和基类的自动转换只针对指针或引用类型。只有指针和引用支持自动类型转换,同时,也只有指针和引用才可以静态类型和动态类型不同...
分类:
编程语言 时间:
2014-05-14 18:13:39
阅读次数:
290
今天做了一个小程序,jsp输入一些字段,action中将这些字段放到list中,然后从数据库get到那列数据,同样放到另一个list中,然后进行值相等的判断,就是这么简单的一个程序。但因为很久没碰Hibernate了,所以执行起来有些坎坷。列出如下问题:空指针异常频发,这是因为在vo类中..
分类:
数据库 时间:
2014-05-14 17:31:38
阅读次数:
384
我们分别从存储分配方式、时间性能、空间性能三方面来做对比。
存储分配方式:
顺序存储结构用一段连续的存储单元依次存储线性表的数据元素。
单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素。
时间性能:
查找
顺序存储结构O(1)
单链表O(n)
插入和删除
顺序存储结构需要平均移动表长一半的元素,时间为O(n)
单链表在计算出某位置的指针后,插入和删...
分类:
其他好文 时间:
2014-05-14 14:16:42
阅读次数:
335