2014-09-09 5 views
0

어떤 줄을 2 차원 배열의 행 & 열 현명한 표현으로 설명 할 수 있습니까? 선생님이 말한 것을 우리는 매트릭스 다음과 같은 경우 :다차원 배열의 스택 표현

a00   a01   a02 
a10   a11   a12 
a20   a21   a22 

Column wise representation:      Row Wise representation: 
a00            a00 
a10            a01 
a20            a02 
a01            a10 
a11            a11 
a21            a12 
a02            a20 
a12            a21 
a22            a22 

난 단지 메모리에 multidimentional 배열의 표현에 대해 알고있는 반면 : 다음 A00 A01 다음 A02 다음 A10 등 (주소가 증가하는 순서)

나는 다차원 배열의 메모리 표현 인 &의 차이점 인 b/w 스택 표현 인 클래스에서이 질문을 제기했습니다. 그녀는 포인터가 아니라 2 차원 배열을하고 있다고 말했다. 어떤 종류의 대답입니까? 제발 설명해주세요.

그녀는 또한 행 표현과 열 표현의 2 차원 배열의 요소의 주소를 스택에 계산할 수있는 공식을 말했습니다. 나는 그것을 이해하지 못했다.

위치 (A [J, K) = Base_address (A) + W (M (K-1) + (j-1))

+0

, "스택"이 질문에 무관 (그리고 순수 주의자 그것이 외설 당신을 말할 것이다 : 당신이 열 표현이있는 경우

Location(A[j,k]) = Base_address(A) + (j-1)*COL + (k-1) 

을 * 코드와도 관련이 없음). – WhozCraig

답변

1

당신은,

말했다

나만 메모리 multidimentional 어레이의 표현에 대해 알고있는 반면 : 다음 A00 A01 다음 A02 다음 A10 등 (주소가 증가하는 순서) C/C++에서

을 다차원 배열이 저장을 행 표현을 사용하여.

FORTRAN의 IIRC에서는 다차원 배열이 열 표현을 사용하여 저장됩니다.

가 C에서가 아니라 2 차원 배열을 정의 할 수있다 : 만약 함수 배열을 전달할 때

int a[10][3]; 

를 그 타입의 int (*)[3] 포인터 붕괴.

면책 조항 :내 FORTRAN 같이

FORTRAN에서, 당신은 2 차원 배열을 정의 할 수 있습니다 녹슨, 그래서 잘못된 구문의 사용을 사면 :

INTEGER A(10, 3) 

것은 당신이 배열을 전달하는 경우 함수의 인수 유형은 다음과 같습니다.

INTEGER A(10, *) 

diff 구문에있는 요소를 사용하면 C에서 다차원 배열이 행으로 표현되는 것이 더 자연스럽지 만 FORTRAN에서는 열로 표현되는 것이 자연스럽게 보입니다.

는 또한 말했다 :

Location(A[j,k]) = Base_address(A) + W(M(k-1)+(j-1)) 

그것은 당신이 1부터 시작하는 인덱스를 사용하는 것 같다. 확실하지 않은 무엇 WM의 약자.

ROW 행 수와 COL 열 수를 가정 해 봅시다.

당신은 행 표시가있는 경우 :

코드없이
Location(A[j,k]) = Base_address(A) + (k-1)*ROW + (j-1) 
+0

다차원 배열은 항상 표현됩니다. 행 현명한 아니 현명한? 그래서 내 선생님이 우리가 C –

+1

@ StackOverflow32를 사용하여 알고리즘을 공부하고 있다고 잘못 말한 것 같습니다. 맞습니다. 나는 그녀와 분명히 할 것이다. 어딘가에서 오해가있을 수 있습니다. –

1

여기 RAM에서 2 차원 어레이의보다 나은 표현이다 :

열 현명한 표현 :

Chip1 Chip2 Chip3 
a00 a01 a02 
a10 a11 a12 
a20 a21 a22 

행 현명한 표현 :

Chip1 Chip2 Chip3 
a00 a10 a20 
a01 a11 a21 
a02 a12 a22 
+0

RAM 또는 스택? 나는 그것을 얻지 않는다 –

+0

스택은 RAM에 저장됩니다. @ StackOverflow32 – CMPS

+0

@ StackOverflow32 질문 /79923/what-and-where-are-the-stack-and-heap – CMPS