弱智bug又两个

第一个bug:

struct msg_header {
int a;
int b;
int c;
};

这个只是消息头,消息内容在内存里排放在 struct msg_header 的后面,现在我要把消息内容部分(不包括头部)拷贝到string里:

struct msg_header *msg;
….
//拿到msg
….
string res;
res.assign( (char*)(msg+sizeof(struct msg_header)), len);

这样写是错的,括号嵌括号而且“+”写得不规范,靠得太紧,让自己都看晕了,正确的写法应该是:

res.assign( (char*)msg + sizeof(struct msg_header), len);

第二个bug:

没什么代码可列举,就是c++类的成员变量(int型)未在构造函数时初始化,在有些情况下可能默认成员变量的值就是0,在另一些情况下可就不一定了。正因为时有时无,所以最难发现。


都是简单bug,没有什么技术含量,但是一旦犯了,排错又耗力又耗时,遂贴之以为警示。


相关文章

分类

留言:

关于文章

This page contains a single entry by DongHao published on 12 23, 2010 4:45 PM.

小提琴 was the previous entry in this blog.

类型转换bug is the next entry in this blog.

Find recent content on the main index or look in the 存档 to find all content.