[cdev] задача 4, 135 гр.
    Grigoriy A. Sitkarev 
    sitkarev на komitex.ru
       
    Вс Дек  5 20:17:31 MSK 2010
    
    
  
Добрый вечер всем.
Перепроверьте вычисления в ф-ии parray_delete_nth(), там где вы 
подсчитываете сколько байт вам нужно переместить. Нужно помнить что в Си 
для арифметических операций приоритеты такие же как в алгебре, т.е. '+' 
и '-' имеют приоритет ниже чем у '/' и '*'. Порядок всегда можно 
изменить скобками круглыми (как в алгебре).
В parray_delete() то же самое замечание.
В parray_delete_range() проверка
if (count >= pa->nelems - nth)
не верна, т.к. здесь надо было проверять на строго "больше". 
Предположим, в массиве есть 4-е элемента, а пользователь захотел удалить 
  начиная нулевого индекса 4-е элемента:
parray_delete(pa, 0, 4);
(4 >= 4 - 0) тогда будет истиной, хотя count вмещается в допустимые пределы.
Код там можно было проще написать, обрезав count до допустимого 
количества, если оно было больше, и делать memmove() дальше одинаково 
для обеих случаев.
Всё остальное вроде бы работает, и поиск и сортировка и обход. Вам 
осталось совсем чуть-чуть.
--
Г.А.
Ксения Оботурова пишет:
> Григорий Александрович, проверьте пожалуйста 
> 
    
    
Подробная информация о списке рассылки cdev