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

omh159님의 프로필 이미지
omh159

작성한 질문수

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

1-A

1-A 문제 Segmentation fault 질문 있습니다!

작성

·

145

0

안녕하세요, 문제 먼저 풀어보고 강의 들으면서 이해가 안되는게 생겨서 질문합니다.

혼자 문제를 풀 때 계속 Segmentation fault 라고 떠서 이해가 안됐는데 강의를 보고 처음 전역변수 선언을 vector<int> a 에서 int a[9] 로 바꿨더니 정상적으로 작동합니다. 혹시 무슨 이유 때문인지 알 수 있을까요??
http://boj.kr/f29a4a0039a24e0cb80ca19bfe8a1209

답변 1

0

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

안녕하세요 159님 ㅎㅎ

vector<int> a;

이렇게 선언을 한다는 것은 a라는 "비어있는 벡터"를 선언한다는 의미입니다. 근데 여기서 갑자기 이렇게 어떠한 인덱스, 0, 1, 2.. 즉 비어있지 않은 어떠한 공간에 참조를 하니 에러가 발생하는 것이죠.

  for(int i = 0; i < 9; i++) {
    cin >> a[i];
    sum += a[i];

 

만약에 벡터를 비어있지 않고 크기가 설정되어있는 벡터를 선언하고 싶으시다면 교안내의 다음 부분을 참고해주세요.

vector의 정적할당

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


omh159님의 프로필 이미지
omh159

작성한 질문수

질문하기