예외 발생 질문이요

chossfox의 이미지

final int Width = 15;
final int Height = 30;
int[][] panelarray = new int[Height][Width];
 
void AddArray()
	{
		panelarray = new int[Height][Width];
 
		Iterator<int[]> iter = block.array.iterator();
		while (iter.hasNext())
		{
			int[] is = (int[]) iter.next();
			panelarray[is[1] - 1][is[0]] = 1;
		}
 
	}

while 구문을 한 번도 제대로 돌지 못하고 getUncaughtException 이 발생합니다.
이 때 이차원 배열 is 값은 { 28, 5 } 입니다.

이 예외는 처음 보는데 어떤 상황에서 발생하는 건가요?

shint의 이미지

#include <iostream>
#include <deque>
#include <array>
 
 
using namespace std;
 
 
typedef struct
{
	int n0;    //Width
	int n1;    //Height
}ST_INT;
 
 
 
const int Height = 30;
const int Width = 15;
int panelarray[Height][Width];
 
 
void fnDeque()
{
	printf("fndeque()\n");
 
	deque<ST_INT> dq;
 
	ST_INT si;
	si.n1 = 10;		//Height
	si.n0 = 10;		//Width
	dq.push_back(si);
 
	si.n1 = 10;		//Height
	si.n0 = 20;		//Width
	dq.push_back(si);
 
 
	deque<ST_INT>::iterator it = dq.begin();
	while (1)
	{
		if( it == dq.end() )
		{
			break;
		}
 
		ST_INT si = *it;
		if( (0 < si.n1 - 1 && si.n1 - 1 < Height) && (0 < si.n0 && si.n0 < Width) )
		{
			panelarray[si.n1 - 1][si.n0] = 1;
			printf("H:%d  W:%d\n", si.n1, si.n0);
		}
		else
		{
			printf("범위를 넘는 값이 입력되었습니다.  H:%d  W:%d\n", si.n1, si.n0);
		}
		it++;
	}
}
 
 
int main(int argc, char** argv) 
{
 
	fnDeque();
 
	return 0;
}

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com