2014-04-04 5 views
0

헬퍼 함수에이 함수가 있습니다.명령문을 실행하지 않습니다.

enum recstate { 
    initial, 
}; 

struct client { 
    enum recstate state; 
} 

이 내 메인 코드입니다 :

if(p->state == initial){ 

난 정말 왜 이해가 안 : 나는 아래 if 문이 실행하려고 할 때까지

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

모든 것이 잘 작동합니다. 많은 도움을 주셨습니다. 감사!

+0

전에

p = malloc(sizeof(struct client)); 

을 추가, 당신은 당신이 표시되지 않은 코드에 'P-> 상태 = somethingElse'을 가질 수 있습니다. –

+3

'struct client * p = malloc (sizeof (* p)); ' – BLUEPIXY

+1

구조를위한 공간을 할당하는 것을 잊었습니다. – Caladan

답변

6

p에 메모리를 할당하지 않았습니다. 승인되지 않은 메모리에 액세스하고 있습니다. 권한이없는 메모리에 액세스하는 동작은 정의되지 않습니다.

선 우리가 알고있는 모든

p->state = initial; 
관련 문제