c3
может доходить до n
во внутреннем цикле, но вы можете выделить только менее 1003 * слотов в вашем массиве.На самом деле, даже если вы выделите n
слотов, индекс n
будет на один больше, чем количество выделенных слотов.В худшем случае вы просто повредите часть памяти за концом массива и, надеюсь, не очистите стек.В лучшем случае, я полагаю, у вас есть ошибка.Возможно, вы захотите изменить X <= n
на X < n
или выделить еще один элемент в вашем массиве.На самом деле, вы, вероятно, должны просто выделить (n + 1) * sizeof(short)
байтов для вашего массива.
Кроме того, вы никогда не устанавливаете t и никогда не проверяете пользовательский ввод.Последнее может быть хорошо, если это для соревнования, которое будет иметь ограничения на ввод.Кроме того, вы никогда не освобождаете массив prime
, поэтому у вас есть утечка памяти.