2012-11-04 3 views
0

그래서 나는 구조를 정의이 범위 오류가 선언되지 제공

struct PAIR{ 
    int a; 
    int b; 
    int dist; 
}; 

나는 쌍 * VEC를 정의하려고하는 기능이 후

; 그리고 나에게 준다

optim.cpp:97:4: error: ‘Pair’ was not declared in this scope 
optim.cpp:97:10: error: ‘vec’ was not declared in this scope 

무엇이 문제인가?

+2

'쌍'소리가 아니며 '쌍'소리가 아닙니다. –

+1

'struct PAIR *' –

+0

@Als 나는 또한 그렇게 말할 것입니다. 그런데 파일 이름이'* .cpp' 인 것으로 나타났습니다. –

답변

1

c는 대소 문자를 구별합니다. 페어와 페어는 동일하지 않습니다.

또한 구조체 PAIR은 자동으로 typedef되지 않습니다.

당신은

struct PAIR * instance; 

같은 변수/포인터를 선언 할 필요가 또는 당신은 지금 당신이 C에서이

Pair var; 

처럼 할 수

typedef struct PAIR 
{ 
    // variables; 
} Pair; // note the typedef name appears at the end. 

처럼 먼저 형식 정의를 필요 ++ 형식은 자동으로 typedef이지만 c에 포함되지 않습니다

+0

그래, 정말 우스운 멍청한 실수! 감사! – exilonX

0

시도 :

struct PAIR *ve; 

대신에.

2

C는 대소 문자를 구분하므로 Pair 대신 PAIR을 사용해야합니다.

gcc 또는 g ++ 컴파일러를 사용하고 있는지 확실하지 않습니다. g ++을 사용한다면 (당신이 보여주는 파일이 optim.cpp이기 때문에), Pair to Pair를 수정하면 문제를 해결할 수 있다고 생각합니다. gcc를 사용하는 경우 구조체 접두사를 구조체에 추가해야합니다.