❓원인:
스택 오버플로우 초과 문제일 때 나타나는 오류
예: 함수 내에서 큰 배열(예: char buffer[1000000];)을 선언하면, 스택이 부족할 수 있음.
✅ 해결:
1. 큰 지역 변수는 힙으로 할당: 스택에 큰 배열을 두지 말고 new 또는 malloc을 사용해서 힙에 할당
// 스택 할당 (문제 발생 가능)
void func() {
char largeArray[1000000]; // 스택 오버플로우 가능
}
// 힙 할당 (안전)
void func() {
char* largeArray = new char[1000000]; // 힙 메모리 사용
delete[] largeArray;
}
2. 힙 메모리 늘려주기(추천!!)
프로젝트 속성 → 시스템 → 스택 예약 크기 를 늘려준다.
3. 재귀 호출 문제 확인
재귀 함수가 너무 깊이 호출되지 않도록 반복문으로 변경하거나 최대 깊이 제한을 설정
나는 2번으로 해결했다. 거의 50메가 할당해버림..ㅋ
'개발공부 > C++' 카테고리의 다른 글
[C++ MFC] 로그 남길 때 동시 접근 문제, CCriticalSection 사용 (0) | 2025.03.13 |
---|---|
[C++ MFC] 화면 캡쳐하는 함수 (0) | 2025.03.11 |
[C++ MFC] 문자열 _T("")와 L"" (0) | 2024.12.26 |
[C++] 폴더 없을 때 폴더 생성 (0) | 2024.12.17 |
[C++ ] Systemtime : 시스템 시간 날짜 얻어오기 (0) | 2024.12.17 |