11047번 - 동전 0
먼저 시시콜콜한 질문에도 답변해주시는 온라인저지 형님분들 감사합니다..
아래와 같이 코드를 짜서 실행하면,
vector a관련 bad access라는 오류가 납니다.. 꼭 벡터의 크기까지 정의되어야 a[1]~a[n] 까지의 값을 입력받을수잇는이유가있나요??
vector는 크기가 정해지지 않은 배열로 생각하고, 편하게 이용하려 했는데, a만 설정하면 왜 이런 오류가 나는지요??
물론 해당문제의 a 적당히 큰 값으로 크기를 설정하면(ex. a(10000)) 문제는 풀 순 있는데요, 궁금하군요..
날도 더우니 더위 조심하시고요..
vector는 크기 0으로 초기화됩니다.
벡터는 내부적으로 동적으로 크기를 할당받습니다. 예를 들면 vector<int> a(100); 은 내부적으로 int *ar = new int[100]; 과 비슷하게 메모리를 할당해줍니다. 이를 미리 해두지 않으면 a[50] 과 같은 원소에 접근하는 건 허용되지 않겠죠?
댓글을 작성하려면 로그인해야 합니다.
swdream 5년 전
먼저 시시콜콜한 질문에도 답변해주시는 온라인저지 형님분들 감사합니다..
아래와 같이 코드를 짜서 실행하면,
vector a관련 bad access라는 오류가 납니다.. 꼭 벡터의 크기까지 정의되어야 a[1]~a[n] 까지의 값을 입력받을수잇는이유가있나요??
vector는 크기가 정해지지 않은 배열로 생각하고, 편하게 이용하려 했는데, a만 설정하면 왜 이런 오류가 나는지요??
물론 해당문제의 a 적당히 큰 값으로 크기를 설정하면(ex. a(10000)) 문제는 풀 순 있는데요, 궁금하군요..
날도 더우니 더위 조심하시고요..