1786번 - 찾기
while 문 안에서 string.size()를 계속 호출하면 왜 segfault가 나는지 궁금합니다.
지금까지 문제 풀면서 거의 항상 사이즈를 변수에 따로 저장해두지 않고 반복문안에서 계속 호출하게 했었는데 이번에 처음으로 segfault가 나서 궁금해서 여쭤봅니다.
string.size()는 unsigned를 반환하기 때문에 P의 길이가 T의 길이보다 큰 경우 haystack.size() - needle.size()에서 오류가 날 수 있습니다.
이러한 경우 당연히 답은 0이므로 예외 처리를 하시거나 (int)로 casting 또는 변수에 저장해서 사용하는 것이 바람직해 보입니다.
댓글을 작성하려면 로그인해야 합니다.
byungck3 2년 전
while 문 안에서 string.size()를 계속 호출하면 왜 segfault가 나는지 궁금합니다.
지금까지 문제 풀면서 거의 항상 사이즈를 변수에 따로 저장해두지 않고 반복문안에서 계속 호출하게 했었는데 이번에 처음으로 segfault가 나서 궁금해서 여쭤봅니다.