작은 서언, 저는 프로 프로그래머가 아닙니다. 저는 실제로 일부 프로그래밍을 알고있는 기계 엔지니어입니다. 여기는 제 첫 번째 질문이기 때문에 나와 함께하시기 바랍니다. 나는 일을 단순하게 유지하기 위해 실제 코드 대신에 대략적인 요약 코드를 넣는 것과 비슷합니다.왜 내 지그재그 배열로 문제가 해결 되었습니까?
vb.net에 지그재그 배열이 있습니다. 특정 화합물이 지그재그 배열의 첫 번째 인덱스 인 각 "영역"을 얼마나 많이 통과하는지 추적하는 데 사용하고 있습니다. 예,
jagged_arr()() = new double(4)() {}
과 배열의 첫 번째는 항상 사전에 설정됩니다 : 그래서 나중에
jagged_arr(0) = {1, 2, 3, 4}
내가 통해 반복하기 위해 노력하고있어 및 프로세스 것을 나는 이미와 다른 배열을 초기화했습니다 기본적으로 영역별로 영역에 :
for z = 0 to 3
if z = 2
jagged_arr(z + 1) = jagged_arr(z) 'NOTE!!!
for r = 0 to jagged_arr(z + 1).getUpperBound(0)
'more calcs
jagged_arr(z + 1)(r) += 2
next
end if
next
대신 나에게 배열을주는 내가 기대 :
,518,984,451,755,339,203,210나는 배열과 같이 얻을 :
{{3, 2, 3, 4},
{3, 2, 3, 4},
{3, 4, 5, 6},
{3, 4, 5, 6},
{3, 4, 5, 6}}
내가 그 일이 왜 꽤 혼란 스러워요.
jagged_array(z + 1) = new double(jagged_array(z).getUpperBound(0)) {}
for i = 0 to jagged_array(z + 1).getUpperBound(0)
jagged_array(z + 1)(i) = jagged_array(z)(i)
next
내가 여기서 뭔가를 놓치고 있습니까 :이와 내가 선이 위에서 언급 교체 후 의도 한대로 (참고로!) 일을 왜 더 혼란 스러워요? 각 배열을 처음에 복사하는 것이 왜 이상한 행동을 일으키는 지 알 수 없습니다. 어떤 도움을 주셔서 감사합니다!
배열은 값 유형이 아닌 .NET에서 참조 유형입니다. 배열을 복사하지 않고 참조를 *** 동일한 *** 배열에 복사하고 있습니다. – Comintern