• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

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

23.05.29 03:19 작성 조회수 245

0

제곧내입니다

답변 2

·

답변을 작성해보세요.

0

전체 코드 올려주세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.31

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

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

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

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

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