작성
·
177
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 큰돌님! 2-I를 푸는 과정에서 코드를 수정해도 똑같은 오류가 나서 질문 남깁니다..
코드를 작성할 때마다 런타임에러가 나는데 이유를 모르겠습니다.
답변 2
0
안녕하세요 ㅎㅎ
이문제의 숫자 범위는 굉장히 큽니다.
문제를 보시면..
다음 N개의 줄에는 각 줄의 내용이 주어진다. 각 줄은 최대 100글자이고, 항상 알파벳 소문자와 숫자로만 이루어져 있다.
이렇게 되어있죠? int는 10자리, long long 20자리라고 보시면 됩니다. 아예 숫자로 표현이 불가능하겠죠?
그래서..
if(tmp.size()){
v.push_back(stoi(tmp));
tmp="";
이부분에 대해 오류가 뜨는 것입니다. 문자열만을 사용해주세요.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다.
yjs000616님께서 겪고 계신 런타임 에러는 C++에서 흔히 발생할 수 있으며 다양한 원인에 의해 발생할 수 있습니다. 가장 일반적인 원인으로는 배열 범위 초과, 메모리 할당 실패, 잘못된 포인터 참조 등이 있습니다.
안타깝게도 제가 제공받은 정보만으로는 yjs000616님의 코드에서 구체적으로 어떤 부분에서 런타임 에러가 발생하는지 파악하기 어렵습니다. 그러나 비슷한 문제를 겪은 다른 학습자의 사례를 참조해보실 수 있도록 유사한 질문에 대한 답변을 찾아드리겠습니다.
아래는 2-I 강의 내용과 관련하여 런타임 에러에 대한 설명이 있는 기존 답변입니다. 이 답변이 yjs000616님의 문제 해결에 도움이 될 수 있을지 참고해보시기 바랍니다.
2-i 질문드립니다
- 해당 질문에서 학습자는 런타임 에러에 대한 문제를 겪고 있었으며, 강사님은 런타임 에러가 발생하는 원인이 fin 함수에 기저사례가 없어서 그런 것 같다고 설명하고 있습니다. 디버깅 방법을 제시하여 재귀함수에서의 오류를 해결할 수 있도록 안내하고 있습니다.
런타임 에러를 해결하는 방법으로는 다음과 같은 접근을 해 볼 수 있습니다:
- 배열이나 벡터의 인덱스 접근 시 범위를 초과했는지 확인하세요.
- 재귀 함수를 사용할 때, 기저사례(base case)가 적절히 처리되었는지 확인하세요. 재귀적 호출이 끝나지 않는 상황은 스택 오버플로우를 호출할 수 있습니다.
- 동적 할당한 메모리를 올바르게 해제했는지, 메모리에 접근할 때 포인터가 유효한 메모리를 가리키고 있는지 확인하세요.
위의 링크를 참고하시어 yjs000616님의 코드에 적용해보시면 도움이 될 수 있습니다. 혹시나 여전히 문제를 해결할 수 없다면, 구체적인 코드의 일부나 에러 메세지 내용을 덧붙여 다시 질문해보시는 것도 좋은 방법입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.