2011-02-17 9 views
0

void classifier_rules(struct classifier *k, struct classifier *ptr_keys); 

이 내가이 같은 다른 기능이 기능 classifier_rules를 불렀다 내가 포인터

struct classifier keys,*ptr_keys; 
ptr_keys = &keys; 

의 주소를 할당하는 방법을 내 함수의 프로토 타입입니다

classifier_rules(&(ptr->keys[pos]), &ptr_keys); 
here i get a error ‘ptr_keys’ undeclared (first use in this function) 

classifier_rules(struct classifier *rules, struct classifier ptr_keys) 
{ 
this is the body of function; 

} 

hhw이 오류를 제거하려면 키 주소가 d로 전달되지 않도록해야합니다. 오 그래서

struct classifier keys,*ptr_keys 

사용자 통화 기능에

+4

호출 기능의 본문을 게시 할 수 있습니까? 또한 함수 정의가 프로토 타입과 일치하지 않습니다. 단지 오타가 아닙니까? –

+0

ptr_keys는 classifier_rules의 매개 변수입니다 ... 다른 함수에서 어떻게 정의 될 수 있습니까? 이는 언어에 대한 매우 심각한 오해를 암시합니다. 기본을 익힐 때까지 간단한 프로그래밍 문제부터 시작해야합니다. –

+0

이 위키 피 디아 문서를 살펴보십시오. http://en.wikipedia.org/wiki/Variable_scope – qbert220

답변

1

경우 일부 잘못된 메모리 위치를 액세스 할 수 있습니다, 그것은 작동합니다. (또는 최소한 다른 오류가 발생해야합니다).

& ptr_keys를 전달하면 안됩니다.

classifier_rules(&(ptr->keys[pos]), ptr_keys); 
//ptr_keys is already a pointer, you don't need to use a '&'