2011-07-28 6 views

답변

3

레코드를 생성하거나 처리하는 데 재귀 함수를 사용하지 말고 스택에 레코드를 할당하지 마십시오. 재귀는 반복으로 대체 될 수 있으며 스택 배열은 std :: vector로 대체 될 수 있습니다.

2

스택 오버플로 오류를 방지하려면 스택에 너무 많은 데이터를 넣지 마십시오. 기본적으로 : 큰 배열 인 로컬 변수를 사용하지 마십시오. 대신 포인터 인 지역 객체를 만들고 malloc() 또는 new을 사용하여 실제 데이터 공간을 할당하십시오. 그러면 포인터가 스택에 있지만 데이터는 다른 곳에 배치됩니다.

마지막으로, free()에 malloc()이 있어야한다는 것을 잊지 말고 delete 새 항목이 있어야합니다. 일단 완료되면 (그리고 여전히 포인터가있는 동안)!

관련 문제