알고리즘
size_t 언더플로우 주의
Jason95
2021. 7. 18. 12:27
for (size_t i = 0; i < R; i++)
{
for (size_t j = 0; j < C; j++)
{
if (i == 0 && j == 0) {
if (i - 1 >= 0 && map[i - 1][j] != -1) { // A
cout << "출력 " << i << endl;
}
if (i >= 1 && map[i - 1][j] != -1) { // B
cout << "미출력 " << i << endl;
}
}
}
}
}
B처럼 출력되지 않기를 바랬는데
A처럼 출력이 되버리는 이유는
A에서 size_t에 대한 언더플로우가 발생하기 때문 (unsigned int)
따라서 이런 경우 signed int를 사용해야 함