不执行if语句

时间:2014-04-04 18:25:15

标签: c pointers if-statement

我在辅助函数中有这个。

enum recstate {
    initial,
};

struct client {
    enum recstate state;
}

这是我的主要代码:

struct client *p;
p->state = initial;

一切正常,直到我尝试执行以下if语句:

if(p->state == initial){

我真的不明白为什么。 非常感谢。谢谢!

1 个答案:

答案 0 :(得分:7)

您尚未为p分配内存。您正在访问未经授权的内存未定义访问未授权内存的行为。

添加

p = malloc(sizeof(struct client)); 
行前

p->state = initial;