그래서 연결된 목록의 2 차원 배열로 구성된 해시 테이블이 있습니다. 나는 각 링크 된 목록의 내용을 둘러싸고있는 8 개의 셀과 비교하려고하는 비교 함수를 가지고있다. 두 개의 루프를 만들고 정수를 사용하여 두 번째 정수 배열에 사용할 논리를 사용하려고했습니다. 그러나 이것을 테스트 한 후에 나는이 잘못된 것에 대해 알고 있다는 것을 안다. 이것은 단지 예제 코드 일 뿐이고 그리드 위치를 수정할 수없는 이유를 알아 내려고하고있다. temp2 segfaults.2D 해시 테이블의 데이터에 적절하게 인덱스
Node* temp;
Node* temp2;
//grid is a filled 2d array of linked lists
for(int j=0; j<b; j++)
{
for(int i=0; i<b; i++)
{
//This works for ex printing out the entire grid
temp = grid[j][i];
while(temp != NULL)
{
cout << temp->xval;
temp = temp->next;
}
//However this is not allowed
temp2 = grid[j+1][i]
while(temp2 != NULL)
{
cout << temp2->xval;
temp2 = temp2->next;
}
}
}
'j = b-1' 인 경우,'grid [j + 1] [i]'는 테이블의 범위를 벗어날 가능성이 있습니다. – Franck
이것은 내가 프랭크에게 고맙게 생각한 것입니다. 조건을 추가하는 것이 가장 우아한 해결책이라고 생각하십니까? – Riossm
간단한 2 차원 정수 배열과의 차이점을 이해하지 못합니다. 거기도 경계선에서 특별한 조건의 문제가 있습니다. 맞습니까? – user4407569