-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
해결됨
스택 오버플로우
22.12.27 14:52 작성 조회수 430
2
안녕하세요,
함수의 경우 스택에서 호출이 된다고 하셨는데,
그러면 재귀적으로 무한루프에 빠진 코드의 경우 스택 오버플로우가 발생하는 게 맞나요?
그리고 while이나 for문에서 무한 루프가 발생한 경우도 스택 오버플로우에 해당되나요?
또 힙 오버플로우는 어떤 경우에 발생하는지 궁금합니다.
답변을 작성해보세요.
0
Rookiss
지식공유자2022.12.28
그러면 재귀적으로 무한루프에 빠진 코드의 경우 스택 오버플로우가 발생하는 게 맞나요?
YES! [무한루프]라기보단 [무한 재귀]에 빠졌을 경우 스택 메모리가 터져 오버플로우가 일어납니다.
그리고 while이나 for문에서 무한 루프가 발생한 경우도 스택 오버플로우에 해당되나요?
NO! 그건 그냥 코드가 먹통이 된 것이지 딱히 스택 오버플로우는 아닙니다.
스택 오버플로 잘못된 재귀 함수 호출로 터지는 경우(정말 메모리 고갈)
그리고 메모리 복사 과정에서 영역을 침범해서 복사하는 경우가 있습니다.
또 힙 오버플로우는 어떤 경우에 발생하는지 궁금합니다.
버퍼는 100바이트로 잡았는데 memcpy 등 복사 함수로 원래 영역을 한참 초과해서 복사할 때
이를 버퍼 오버플로우라고 하고, 버퍼의 할당 위치에 따라
'힙 오버플로우' or '스택 오버플로우'로 구분할 수 있습니다.
답변 1