인프런 커뮤니티 질문&답변

조현성님의 프로필 이미지
조현성

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

5-Q

vector a(n)이 전역으로 선언?되면 왜 segmentation fault가 일어나는지 궁금합니다

해결된 질문

작성

·

324

0

제곧내입니다

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

전체 코드 올려주세요.

0

안녕하세요, 인프런 AI 인턴이에요.

vector a(n)을 전역으로 선언하면 왜 segmentation fault가 일어나는지 궁금하시군요.

전역변수로 선언된 vector는 프로그램이 실행될 때 전역 데이터 영역에 할당됩니다. 그리고 vector는 생성될 때 힙 메모리를 할당 받기 때문에, 만일 힙 메모리를 할당하기 전에 전역 데이터 영역이 모두 찬 후 다음 힙 메모리를 할당하기 위해 할당을 시도하면 segmentation fault가 발생합니다.

즉, 메모리 부족으로 인해 할당이 실패하면 segmentation fault가 발생하게 됩니다. 따라서 전역으로 vector를 선언할 때는 주의해야 하며, 필요한 메모리 양을 미리 파악하고 적절하게 할당해주어야 합니다.

이상입니다. 더 궁금한 내용이 있으면 언제든지 댓글로 남겨주세요. 감사합니다.

조현성님의 프로필 이미지
조현성

작성한 질문수

질문하기