byungck3   2년 전

while 문 안에서 string.size()를 계속 호출하면 왜 segfault가 나는지 궁금합니다.

지금까지 문제 풀면서 거의 항상 사이즈를 변수에 따로 저장해두지 않고 반복문안에서 계속 호출하게 했었는데 이번에 처음으로 segfault가 나서 궁금해서 여쭤봅니다.

mxteroid   1년 전

string.size()는 unsigned를 반환하기 때문에 P의 길이가 T의 길이보다 큰 경우 haystack.size() - needle.size()에서 오류가 날 수 있습니다.

이러한 경우 당연히 답은 0이므로 예외 처리를 하시거나 (int)로 casting 또는 변수에 저장해서 사용하는 것이 바람직해 보입니다.

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