2013-12-10 4 views
0
C에서

++ 내가 얻고 그러나 C#에서는 C++ 가변 배열 슬라이스는

double parallelopipedPts[8][3]; 
    parallelopipedPts[0]; 
    parallelopipedPts[1]; 
    ... 
    parallelopipedPts[7]; 

내가 이것을 모방하려고 노력하고

double[][] parallelopipedPts = new double[8][]; 
    parallelopipedPts[0]; 
    parallelopipedPts[1]; 
    ... 
    parallelopipedPts[7]; 

을 시도하고있다처럼, 다차원 배열의 조각을 얻을 수 있습니다 메모리 액세스 문제

어떻게 해결할 수 있습니까?

+0

조금 확장 할 수 있습니까? 어떤 요소를 돌려주고 싶습니까? 아니면 요소의 주소를 반환하려고합니까? –

+0

지그재그 배열의 조각 (한 차원)을 얻고 싶습니다. 어떻게 C에서 그렇게할까요? – cMinor

+0

수 없습니다. 여기를 참조하십시오 : http://stackoverflow.com/a/4802062/1517578 –

답변

1

C# 코드에서 8 개의 'double arrays'배열을 만들었습니다.

배열 8의 이중 배열이 아직 할당되지 않았으므로 null입니다.

당신은 배열-의-3 루타이 같은 (예를 들어)로 채울 수 있습니다 :

for (int i = 0; i < parallelopipedPts.Length; i++) 
{ 
    parallelopipedPts[i] = new double[3]; 
} 

그런 다음 당신은 안전하게 하위 배열을 사용할 수 있습니다.

+0

그는 C++ 코드처럼 3을 넣을 수는 없습니까? – Magus

+0

아니요, double [] [] parallelopipedPts = 새 이중 [8] [3]; 컴파일되지 않을 것이다. – Baldrick

+0

for 루프가 유일한 방법입니까? – cMinor