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!!
阅读(778) | 评论(1) | 转发(0) |