2014-07-19 5 views
2

나는 C를 배우기 시작했다. ncurses 라이브러리를 사용하는 법을 배우고 싶었고 예제 형식으로 더 많은 지침서 인 '튜토리얼'을 발견했다.구조체가 정의되었지만 그것을 주장하는 컴파일러가 아닌 것

snake.c:47:9: error: member reference base type 'Snakeypart [40]' is not a 
    structure or union 

을 의미 어떤 : 내가 컴파일 할 때

typedef struct Snakepart { 
      int x; 
      int y; 
} Snakeypart; 

가 그럼 난이 오류 : 튜토리얼에서

http://xn--ncoder-9ua.dk/blog/2010/04/using-ncurses-in-c-for-text-user-interfaces-featuring-xcode/

는 구조체 코드로 정의가 이 코드 란 :

snakey.x = sbegx + i; 
,

변수 스네이크 게임은 코드를 사용하여() 이전 주 내에서 정의된다

Snakeypart snakey[SNAKEY_LENGTH]; 

구조가 정의 된 때 오류를 받고 있어요 왜 이해가 안 돼요. C 프로그래밍에 익숙하지 않지만 코드 작성 능력을 뛰어 넘는 몇 가지 개념을 이해하고 있으므로 필요한 경우 약간의 기술을 익히는 것을 두려워하지 마십시오. 감사.

+0

typedef 구조체를 사용해 보셨습니까? {/ * ... * /} Snakeypart? – DTSCode

+4

'snakey'는'Snakeypart'가 아니라 배열로 정의됩니다 ...'snakey [0] .x'와 같은 것을 원합니다. –

답변

4

배열의 요소를 호출해야합니다. 예를 들어

는 :

snakey[0].x = sbegx + i; 

당신이 snakey[SNAKEY_LENGTH];를 사용하여 스네이크 게임을 만들고, 프로그램은 SNAKEY_LENGTH 구조의 배열을 만듭니다. snakey[j]을 사용하여 배열의 j 번째 구조에 액세스 할 수 있습니다.

+0

예, 고맙습니다. 엔트리는 for 루프 안에 있기 때문에 snakey [i] .x 여야합니다. – DevinM

1
snakey[n].x = sbegx + i; 

--This 할 수 있습니다 N

사촌 INT입니다 .. 스네이크 게임은 배열입니다!

+1

예, 감사합니다. 나는 그것을 너무 열심히보고 있었다. – DevinM