天天看点

十二月工作总结

最近比较忙,拖到现在才来写上个月的工作总结。

1)  动态分配内存资源的释放问题。

动态内存分配后,应该小心处理这块内存,不然会出现一系列跟内存相关的问题。问题总结如下:

1.1)   分配了,没有释放,造成内存泄露,当时程序运行也许不会死机,但是随着内存越来越少,难免会出现死机的问题。

1.2)   分配了10个单位的内存空间,却在程序中对该块内存执行越界操作。这种情况经常出现在对字串操作中,例如malloc了10个char的A数组,却从100个char的B数组拷贝char到A数组中。

1.3)   分配内存,在释放该内存后,未对原来指向该内存的指针执行设NULL操作,也即常常说的野指针。因为程序中很多代码都是先判断指针是否为NULL,非空才进行相关内存操作,若碰到野指针则会出现对非法内存进行操作的情况,出现不可预知错误。

1.4)   给string分配内存时,应该算入结束符’/0’的空间。

2)  跟踪内存的debug技术。

使用debug中的memory查看内存变动。这种对于检查动态内存的分配释放有些帮助。刚开始看前辈用VS自带的memeory查看工具查看内存的分配释放,设置条件断点跟踪指定条件代码,用内存变动触发断点时,觉得出神入化。现在经过这一学习,自己也会用了。真是神奇的地球。

VS自带的Memory View工具,适用于细致查看内存分配释放情况,查看内存使用的工具。常用来跟踪动态内存分配释放。

条件断点,常用于触发某一限定条件的break point。例如在一个循环内打一条件break pioint,只在循环到第五十次时才触发。

Memory变动断点,指定某内存地址,在debug到该内存值改变时即触发,方便定位那些不知在哪修改了内存的代码。

3)  内存泄露的查找。这是一个细心活,也是针对动态内存的管理问题。只能依靠log定位到程序中出现泄露的内存在代码的哪里分配的。另有一些log是不能定位到具体哪行代码分配内存的,只能根据其他信息诸如泄露内存size已经自己逐行查找动态内存使用的代码。

6)  手机UI界面的设计应该考虑到人性化,类似诸如用“OPT”代码option的显示应该避免,因为不能确定用户是否知道该缩写的意思。

8)  关于指针的操作及语法,认识上有一定提高。

继续阅读