std::bad_alloc
알고리즘 문제를 해결하다가 위 오류를 마주하였다. 아마 vector에 너무 많은 경우를 집어 넣어서 생긴 것 같다.
std::bad_alloc 오류는 일반적으로 힙 메모리가 부족할 때, 더 이상 메모리를 동적으로 할당할 수 없을 때 발생하는 현상이라고 한다. 일반적인 에러 원인은 할당된 메모리를 반납하지 않았거나, 잦은 힙 메모리 할당/삭제에 의한 메모리 단편화가 많이 발생되어 원하는 크기의 메모리를 할당할 수 없을 때 발생할 수 있다. 메모리 단편화는 시스템 성능에도 영향을 미칠 수 있으므로 될 수 있으면, 할당할 메모리의 크기가 작고 반복적으로 사용되는 경우에는 스택 메모리(배열 등)에 할당하여 사용하는 것이 좋다는 답변을 보았다.
메모리 관리를 잘해서 안마주치는 게 제일 좋겠지만, 언젠가 또 마주할 수 있을 것 같아서 기록!
참고자료
'C++' 카테고리의 다른 글
[C++] cin과 getline(), 그리고 cin.ignore() (0) | 2024.08.13 |
---|---|
[C++] 참조(reference)와 복사(copy)의 차이 (0) | 2024.07.25 |
[C++] endl과 '\n'의 차이 (0) | 2024.04.23 |
[C++] string 변환 (0) | 2024.04.09 |
[C++] 입출력과 사칙연산 (1) | 2024.02.10 |