C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[45357] Re:Re:재귀호출을 많이 하면 Stack Overflow가 발생하나요?
이용태 [kidary97] 3556 읽음    2006-06-19 10:41
임프님께서 알려주신 대로... 프로젝트 옵션의 링커에서 스택크기를 늘리니까 Stack Overflow가 발생하지 않습니다.

프로그램 알고리즘에 이상이 있는가 해서.. 점검을 해보았으나 이상이 없어 보이는듯 합니다..;;(제가 실력이 안되서 못 찾아 냈을수도. ㅡㅡ;;;;;)

이것때문에.. 시간 잡아먹은거 생각하면... 눈물이 앞을 가립니다..ㅠㅠㅠㅠ

암튼.. 답변 해주셔서 너무나 감사드립니다..


박지훈.임프 님이 쓰신 글 :
: 스택은 함수가 한번 호출될 때마다 사용되고 함수가 종료되면 돌려주므로, 따라서 함수 갯수가 많은 것도 당연히 Stack
: Overflow가 발생하고 안하고에 영향을 많이 줍니다. 그런데...
:
: C++빌더에서 스택의 기본 크기는 1메가바이트입니다.
: 이것은 프로젝트 옵션의 링커 페이지를 보시면 지정할 수 있게 되어 있습니다.
: 1메가바이트라는 양은 절대로 적은 양이 아닙니다. 보통 프로그램은 이 양의 몇십분의 일도 쓰지 않습니다.
: 함수가 한번 호출되는 데에 스택은 기본적으로 기껏해야 몇십 바이트밖에 사용되지 않습니다.
:
: 분명히 아셔야 할 것은, 보통은 Stack Overflow가 생긴다면 로직상에 문제가 있는 것입니다.
: 그리고 함수를 세개 호출하면 Stack Overflow가 발생하지 않고 네개 호출하면 발생한다면, 세개인 경우라도 데이터가
: 더 많이 들어오거나 해서 조건이 다른 경우가 되면 얼마든지 발생할 수 있다는 겁니다.
:
: 만약 확실히 더 복잡한 조건이 되지 않는다는 전제조건이 있다면, 위에서 말한 프로젝트 옵션의 링커 페이지에서 더 많이
: 늘려주거나, 혹은 재귀호출을 하는 함수 내에서 지역 변수를 최대한 적게 쓰거나 하는 방식으로 피해갈 수는 있습니다.
:
: 하지만 먼저 로직을 재점검하는 것이 최우선이라고 생각됩니다.
: Stack Overflow가 발생할 정도로 엄청나게 많은 횟수로 재귀호출이 일어난다면 로직이 좀 의심스럽습니다.
:
: 그럼...
:
:
: 이용태 님이 쓰신 글 :
: : 재귀호출을 해대고 있는데요...
: :
: : a재귀함수
: : {
: : 함수1
: : 함수2
: : 함수3
: : 함수4
: : }
: :
: : 이렇게 되어져 있습니다.
: :
: : 여기서 a 재귀함수에서 함수 4개를 포함시켜서 프로그램을 돌리면 Stack Overflow가 납니다
: :
: : 그런데.. 함수 3개로해서 프로그램 돌리면 Stack Overflow가 발생하지 않습니다.
: :
: : a 재귀함수는 조건이 맞을때까지.. 계속 실행이 되는데요.. 몇번실행되지는지는 정확히 모르겠구요.. 암튼 상당히 많이 실행이 됩니다.
: :
: : 이런 경우 어떻게 해결을 해야 합니까??
: :
: : 함수3개는 되고.. 함수4개는 안된다.. 조금 이상한 듯합니다..;;;

+ -

관련 글 리스트
45349 재귀호출을 많이 하면 Stack Overflow가 발생하나요? 이용태 2092 2006/06/18
45353     Re:재귀호출을 많이 하면 Stack Overflow가 발생하나요? 박지훈.임프 2286 2006/06/18
45357         Re:Re:재귀호출을 많이 하면 Stack Overflow가 발생하나요? 이용태 3556 2006/06/19
45350     Re:재귀호출을 많이 하면 Stack Overflow가 발생하나요? 遠野 2137 2006/06/18
45358         Re:Re:재귀호출을 많이 하면 Stack Overflow가 발생하나요? 이용태 1523 2006/06/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.