Си, компилятор пропускает цикл

Максим Глухманюк

Здравствуйте, у меня возникла проблема.

Вот код:

const size_t pSize = 100;
...
for (size_t c = pSize; c < pow(pSize, 2); ++c)
{
printf("%f\n", gBuffer[c]->sigma);
}
printf("A\n");

Компилирую в MinGW, если быть точнее - в Code::Blocks. Странность поведения этого кода заключается в том, что в режиме Debug компилятор пропускает мой цикл. В режиме Release все хорошо.

Я пробовал потыкаться с различными флагами - не помогло.

Если заменяю pow(pSize, 2) на pSize * pSize, то цикл обрабатывается корректно и в Debug режиме, и в Release.

Подскажите, может я не вижу какой-то банальной ошибки? Всю жизнь писал pow() вторым параметром в циклах, всю жизнь все работало, но не в Code::Blocks, а в VS.

Да, я понимаю, что pow() в Си возвращает double, но ведь в режиме Release все работает...

1 чел.