C++ 이차원 배열에 값 할당할때 구조체 안이면 어떻게 하나요?
// 벽돌 모양을 나타내는 값
POINT Shape[4][4]={ {{0,0},{1,0},{2,0},{-1,0}},
{{0,0},{0,1},{0,-1},{0,-2}},
{{0,0},{1,0},{-1,0},{-2,0}},
{{0,0},{0,1},{0,-1},{0,-2}} } ;
처음에 위처럼 블럭을 다루는 배열을 만들었습니다.
그런데 블럭 종류가 7개라;;;;(물론 안의 배열 값은 다릅니다)
아래처럼 구조체를 선언하고
struct BlockShape {
POINT Shape[4][4];
};
BlockShape uBlockShape[7];
7개를 생성했습니다.
그런데 그뒤 값을 할당할려고
uBlockShape[0].Shape = { {{0,0},{1,0},{2,0},{-1,0}},
{{0,0},{0,1},{0,-1},{0,-2}},
{{0,0},{1,0},{-1,0},{-2,0}},
{{0,0},{0,1},{0,-1},{0,-2}} } ;
이런식으로 하니 오류가 나네요 ㅜㅜ. 7개를 일일이
uBlockShape[0].Shape[0][0] = { 0,0 };
uBlockShape[0].Shape[0][1] = { 1,0 };
......
이렇게 할려니 노가다성이 강해서;;;;
좀더 쉽게 해결하는 방법 없나요?
이런 경우는 생각보다 자주 접하는 거라 이번에 확실히 알아두면 좋을거 같아서요. 부탁드립니다~
Runtime 동작으로는
Runtime 동작으로는 일일이 배열 원소에 값을 대입할 수 밖에 없습니다. 저렇게 초기값이 있을 경우에는 처음 방법대로 전역 변수에서 초기화 시키는 것이 더 편합니다.
댓글 달기