2012-02-20 3 views
0

그래서 더 쉬운 접근을 위해 하나의 배열에 넣고 싶은 boolean 배열을 가지고 있습니다. 그러나 어떤 이유로 이것이 제대로 작동하지 않습니다.배열에 C 배열을 만들려고 시도

내 배열은 다음과 같이 :

boolean l1_000[8] = {1,0,0,0,0,0,0,0};

나는 함께 배열 내 배열을 선언 :

boolean level1[8]; 

그리고 나는 처음 두 (중 하나가있는 단지 선언 할 수 생각 이러한 배열은 직접 큰 배열에서 설정합니다) :

level1[0] = {1,0,0,0,0,0,0,0}; 
level1[0] = l1_000; 

나는 또한 level1 [8] []을 시도했지만 그 역시 작동하지 않았습니다. 여기서 내가 뭘 잘못하고 있니? 어떻게하면 좋을까요?

EDIT : 그래서 나는 부울 * level1 [8]로 배열을 선언하여이 작업을 처리했지만 level1 [0] = l1_000 만 할 수있었습니다. level1 [0] = {1,0000000} 할 수있는 방법이 있습니까?

답변

5

이미 각 요소를 복사하지 않고 생성 된 배열을 저장할 때 배열의 배열을 선언 할 수 없습니다,하지만 당신은 포인터의 배열을 선언 할 수

boolean* level1[] = { 
    l1_000, // the array name decays to a pointer to the first element 
    l2_000, 
    // etc 
}; 
+0

나는 그걸 알아 냈다. 그러나 같은 줄에 배열을 만들려면 어떻게해야합니까? –

+2

@ ChristianA.Strømmen 당신은 이미 생성 된 배열을 저장하거나 같은 줄에 바로 배열을 생성하여 둘 중 하나를 선택해야합니다. 같은 줄에 만들려면 다음과 같이하면된다 :'boolean level1 [] [8] = {{0111000,1}, {1, 1, 1, 1 , 1, 1, 1},/* etc * /}; ' –

+0

완벽! 고맙습니다! :) –

1

내 C-FU 좀입니다 약한,하지만 당신은이 작업을 수행해야한다 :

int l1_000[8] = {1,0,0,0,0,0,0,0}; // one row 
int level1[8][8];// 8 high, 8 wide 
memcpy(level1[0], l1_000, sizeof(int)*8); // size of int * number of memory elements 

기본적으로 int variable[]이 바로 다음을 초기화하는 경우에만 사용해야하고 다른 현명한가 작동하지 않습니다하고.

또한 배열 할 첫 번째 요소를 설정하려고하기 때문에 작동하지 않습니다이

level1[0] = l1_000; 

같은 배열 위치를 설정.

관련 문제