2015-02-01 6 views
0

이것은 정말 간단합니다. 몇 시간은 이미 소요되었지만 여전히 이것을 파악할 수는 없습니다.병합 된 2D 배열에 대한 포인터

병합 된 2D 배열에 대한 포인터가 필요합니다.

int a1[2][3] = {{1,2,3}, {4,5,6}}; 
int a2[4][3] = {{7,8,9}, {6,9,6}, {1,2,3}, {4,5,6}}; 

// This is fine 
int (*p)[3] = a1; 

// compilation error - incompatible types int[3] from type int (*)[3] 
*(p + 2) = a2 

이 문제는 이해했지만 해결할 수 없습니다.

+0

죄송합니다. 잘못된 질문입니다. 이러한 배열은 병합 할 수 없습니다. 인접한 메모리에 없습니다. 나는 그 질문을 닫을 것이다. – Kamath

+0

@ ZEN.Kamath 어떤 배열을 병합 할 수 있습니까? – juanchopanza

+0

@cmaster 예 내 의견을 편집 할 수 없으므로 삭제했습니다. – Gopi

답변

0

당신은 단순히 C에서 배열을 할당 할 수 있으며, 그 문 *(p + 2)이해야 할 노력하고 무엇을 : 그것은 한 번 p를 역 참조, 세 정수 (즉 p가 가리키는 기능)의 배열을 초래하는, 당신이 할 수있는 해당 배열에 아무 것도 지정하지 마십시오.