Здравствуйте, AleksandrN, Вы писали:
AN>Нет проверки корректности входных условий. Использован знаковый тип, поэтому на входе может быть -1.
AN>Я бы сделал чуть по другому.
AN>AN> unsigned long result = 2;
AN> // Сэкономим пару итераций.
AN> for ( unsigned long i = 3; i <= value; i++ )
AN> result *= i;
AN>
А зачем вообще там i? Почему бы просто не написать:
unsigned long result = 2;
// Сэкономим пару итераций.
for (; value>2; --value )
result *= value;
AN>Но ещё лучше так:
AN>AN> unsigned long a = 1234567;
AN> // Что здесь происходит, можешь объяснить?
AN> const char *s = "Hello world!";
AN> printf( "Data: %lu %s; address: %p\n", a, s, s );
AN>
Здесь проблема теста. Не было понятно зачем там strcpy и можно ли её удалять. Может в тесте надо продемонстрировать знание этой функции. Про strdup тоже непонятно, а ещё она может вернуть ноль
.