我在memset中遇到了一个段错误,我看到任何地方都不知道为什么?谁能告诉我什么是错的?
typedef struct Ircsend1_struct{
char type;
char name[32];
}ircsend1_struct;
ircsend1_struct *ircpack;
char *pBuffer;
ircpack = (ircsend1_struct *)pBuffer;
memset(ircpack,0x00,sizeof(ircsend1_struct));
答案 0 :(得分:3)
作业
ircpack = (ircsend1_struct *)pBuffer;
错了。 pBuffer
未初始化。 ircpack
指向未知位置。因此,声明
memset(ircpack,0x00,sizeof(ircsend1_struct));
将调用未定义的行为。
答案 1 :(得分:2)
因为您的指针未初始化,可能意味着
ircsend1_struct irpack;
char *pBuffer = &irpack;
memset(pBuffer, 0, sizeof(ircsend1_struct));