swdream   5년 전

먼저 시시콜콜한 질문에도 답변해주시는 온라인저지 형님분들 감사합니다..

아래와 같이 코드를 짜서 실행하면, 

vector a관련 bad access라는 오류가 납니다.. 꼭 벡터의 크기까지 정의되어야 a[1]~a[n] 까지의 값을 입력받을수잇는이유가있나요??

vector는 크기가 정해지지 않은 배열로 생각하고, 편하게 이용하려 했는데, a만 설정하면 왜 이런 오류가 나는지요?? 

물론 해당문제의 a 적당히 큰 값으로 크기를 설정하면(ex. a(10000)) 문제는 풀 순 있는데요, 궁금하군요..

날도 더우니 더위 조심하시고요..

jh05013   5년 전

vector는 크기 0으로 초기화됩니다.

djm03178   5년 전

벡터는 내부적으로 동적으로 크기를 할당받습니다. 예를 들면 vector<int> a(100); 은 내부적으로 int *ar = new int[100]; 과 비슷하게 메모리를 할당해줍니다. 이를 미리 해두지 않으면 a[50] 과 같은 원소에 접근하는 건 허용되지 않겠죠?

댓글을 작성하려면 로그인해야 합니다.