一个小小的错误,害我浪费了半天时间。。
筒子们,不能用sizeof(结构体指针)啊。
虽然我深谙此理,可是还是由于粗心犯下了如此不可饶恕的错误。。
定义结构体时是这样的:
typedef struct tagOnLineNode
{
int nId;
int new_fd;
struct sockaddr_in ClientAddr;//online client host addr
struct tagOnLineNode *onLineNext;
P_MYLISTNODE_T myNext;
}ONLINENODE_T, *P_ONLINENODE_T;
用的时候follow习惯了,脑袋可能瞬间短路没思考:
P_ONLINENODE_T onlineNode = (P_ONLINENODE_T) malloc(sizeof(P_ONLINENODE_T));
从此劫难铸成。
记之,不可再犯!

本文记录了一个关于使用结构体指针与sizeof运算符时容易犯的错误。作者因习惯性地使用sizeof对结构体指针进行大小计算,导致内存分配错误。通过此经历提醒开发者注意正确使用sizeof运算符。
705





