Chinaunix首页 | 论坛 | 博客
  • 博客访问: 436663
  • 博文数量: 89
  • 博客积分: 2713
  • 博客等级: 少校
  • 技术积分: 938
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-18 21:19
个人简介

为了成为自由自在的人而奋斗!

文章分类

全部博文(89)

文章存档

2016年(5)

2015年(9)

2014年(2)

2013年(10)

2012年(1)

2011年(30)

2010年(32)

分类: C/C++

2010-09-16 07:57:00

1.申请空间,没有判断是否申请成功直接使用
 
2.申请完空间,想当然的以为里面的值为0(给整型分配空间)或者NULL(分配指针空间),须知道凡事得求100%。最好,用memset函数设置一下。
 
3.函数return之前,空间没有释放,导致内存溢出或者段错误
 
4.有些函数参数是指针,却不是传指针进去。比如:memcpy函数。
char buf[100];
int len;
把len的值放到buf首地址开始位置中:memcpy(buf, &len, sizeof(len));
len可能忘记取地址。
 
5.函数参数定义错误,实现功能:声明一个指针,通过函数参数返回一块地址空间。比如:
int getbuf(char *get)//函数声明写成这样
调用模块函数:
char *get;
getbuf(get);
...
然后对get进行操作,error!!!
修改: int getbuf(char **get)//注意函数参数类型
调用:
char *get;
getbuf(&get);
这样就可以对get指针操作了。
 
6.计算一个字符串长度时,习惯性的使用sizeof()函数。应该使用strlen。
 
7.使用memmov,拷贝区域可能重叠
 
8.条件判断语句,判断相等时少敲了一个等号。解决方法:尽量将常量值放在等号左边。
 
9.死循环,需要注意要有无条件退出语句。
 
10.文件、socket等注意要close掉。而不是用free!!
阅读(753) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-16 16:55:38

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com