2014-11-08 5 views
-2

내 코드는 다음과 같이 "구조체 그룹이 오류가C : 구조체 유형 incompatiable 오류

나는이 방법을 사용하려고 거기 :

여기

나는"구조체 그룹 "후가 있다는 publicgroup 선언 struct group 유형의 매개 변수와 호환되지 않습니다. " VS2013을 사용하고 있습니다.

오류는에 "int 값 = isgroupCointainsPID (publicgroup, 300);"이것은 내 VS의 스크린 샷입니다 : enter image description here

스트 랭 건입니다 내가 주석 "테스트"UST 경우, 그것을 잘 작동합니다.

잘 모르겠습니다. 내 코드가 어떻게 잘못 되었나요? 그 방법 PARAMATERS를 입력 할 때 당신이 잘못 난 당신이 포인터로 전달 할 수 있도록 그래서, 많은 조언, 해당 사용자 그룹을 검색 할 내가 게스트를 제공하지 못할 VS를 사용하지 않을

struct proNode{ 
    int pID; 
    struct proNode *next; 

}; 
char groups [3][128]; 
struct group{ 
    int gID; 
    char *name; 
    struct proNode *prolist; 
    struct proNode *blacklist; 
}publicgroup; 


int isgroupCointainsPID(struct group _group, int pID){ 
    if (_group.prolist == NULL){ 
     printf("There is no process %d\n", pID); 
     return 0; 
    } 
    struct proNode *pros = _group.prolist; 
    while (pros != NULL){ 
     if (pros->pID == pID) 
      return 1; 
     pros = pros->next; 

    } 
    printf("There is no process %d\n", pID); 

    return 0; 
} 

int main(){ 
    publicgroup.gID = -1; 
    publicgroup.name = "public group"; 
    publicgroup.prolist = NULL; 
    publicgroup.blacklist = NULL; 
    publicgroup.gID = 2; 
// there is an error :struct group is incompatible with parameters of type struct group 
    int value = isgroupCointainsPID(publicgroup, 300); 
    return 0; 
} 
+0

어떤 줄이 오류입니까? – Phonon

+0

'publicgroup'은 어떻게 선언되어 있습니까? – Phonon

+0

publicgroup은 "struct group"다음에 선언됩니다. – fhlkm

답변

2

호환되지 않는 매개 변수 오류이 가능 희망이

isgroupCointainsPID(struct group _group, int pID) 

isgroupCointainsPID(group _group, int pID) 

에 변경하려고합니다. 따라서 함수 프로토 타입을 작성했는지 여부를 확인하십시오.

+0

농담, 나는 함수 프로토 타입을 추가합니다 : int isgroupCointainsPID (struct group _group, int pID); 그런 다음 문제가 해결되었습니다. – fhlkm

-1

내가 게스트? 내가 codeblocks를 사용할 때 내가 아는 한 , 그냥 당신이 함수 프로토 타입을 그리워 할 때의 일

+2

아니요, 유형의 이름은'group'뿐만 아니라'struct group'입니다. (a)'typedef'를 가지고 있거나 (b) C++로 프로그래밍하고 있다면'group'으로 만 참조 할 수 있습니다. –

+0

좋아, 내가 틀렸어 –