많은 오브젝트들에 의한 강제 초기화?

프로그래밍 일반에 관한 포럼입니다.

Moderator: 류광

Locked
Yama
Posts: 11
Joined: 2008-09-17 18:17

많은 오브젝트들에 의한 강제 초기화?

Post by Yama »

문제사항을 검색하고 찾을려고 했으나 워낙 키워드를 멀로 해야할지 몰라서 글 한번 올립니다.

Dog라는 객체가 10000개가 있는 가정하에
모든 Dog객체(10000개)가 30cm간격으로 뼈를 찾습니다.

그리고 뼈를 찾아주는 인터페이스가 있는데 재귀의 함수로 구현하였습니다.

Code: Select all


class Dog
{};
static int Bone = 100000;
bool RequestLength(Dog *dog, int addRange)
{
    if(addRange < 100000)
    {
	return RequestLength(dog, addRange + addRange);
    }

	return true;
}

void RequestFindStart(Dog *dog)
{
	int AddRange = 30;
	if(RequestLength(dog, AddRange + AddRange))
	 cout<<"찾았네"<<endl;
		
}

제가 문제전달의 의미를 전달하기위해 날코딩으로 작성한거구요.

위 상환에서 RequestLength(dog, addRange + addRange); 문에서 addRange + addRange를 전달하고 나면
RequestLength(Dog *dog, int addRange)에서는 addRange값이 0으로 타나나는 형상이 생깁니다.
그래서 무한 재귀로 들어가버리더군요.

이런상황은 어떻게 해석하고 해결해야될까요?
비슷한 경험이 있으신분 계신가요?

함께 고민할사람이 없어서 글한번 올립니다.
chadr
Posts: 980
Joined: 2003-06-01 12:28
Location: 모대학
Contact:

Post by chadr »

의미 전달이라면 올리신 코드에는 특별한 문제는 없어 보이는군요. 원본 소스에 문제가 있을 것 같습니다. 원본을 올려주셔야지 알 수 있을것 같네요.
Yama
Posts: 11
Joined: 2008-09-17 18:17

글쓴이

Post by Yama »

해결했습니다.

int 형의 표현범위값 초과이더군요.
답변 감사합니다.^^


에궁 좀더 생각하고 올릴껄
Zeprod
Posts: 480
Joined: 2006-11-04 16:24
Location: Creaty Networks
Contact:

Post by Zeprod »

AddRange + AddRange 자체가 0가 된거죠.

오브젝트가 많다고 강제 초기화 되는경우는 없습니다..; 변수가 할당 된것만 봐도 메모리 부족도 아니구요.


아 뒷북이네요(...)
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
Locked