Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.
 
 Функция            Сортирует данные,   применяя   быстрый    алгоритм
 
                    сортировки.
 
 
 
 Синтаксис          #include<stdlib.h>
 
                    void qsort(void *base, size_t nelem, size_t width,
 
                              int(*fcmp)(const void *, const void *));
 
 
 
 Файл, содержащий   stdlib.h
 
 прототип
 
 
 
 
 
 Описание           Функция qsort     применяет    алгоритм    быстрой
 
                    сортировки  "средний  из  трех".   Функция   qsort
 
                    сортирует  содержимое  таблицы  постоянно  вызывая
 
                    функцию сравнения,  определяемой  пользователем  и
 
                    адресуемой с помощью указателя fcmp.
 
 
 
                    - base адресует базу (нулевой элемент) сортируемой
 
                      таблицы.
 
 
 
                    - nelem - число элементов таблицы;
 
 
 
                    - width - размер каждого элемента таблицы в бай-
 
                      тах.
 
 
 
                    Функция *fcmp - функция сравнения -  получает  два
 
                    аргумента  elem1  и  elem2,  которые  представляют
 
                    собой два указателя на 2 элемента таблицы. Функция
 
                    сравнения   *fcmp   сравнивает   между  собой  два
 
                    адресуемых элемента таблицы (*elem1  и  *elem2)  и
 
                    возвращает  в  зависимости от результата сравнения
 
                    целое число.
 
 
 
                    Если элементы:        *fcmp возвращает:
 
                    --------------------------------------------------
 
                    *elem1<*elem2          целое <0
 
                    *elem1==*elem2         0
 
                    *elem1>elem2           целое >0
 
                    --------------------------------------------------
 
 
 
                    При сравнении  символ "меньше,  чем" (<) означает,
 
                    что  левый  элемент  в  конце  сортировки   должен
 
                    оказаться  перед  правым  аргументом.  Аналогично,
 
                    символ "больше,  чем" (>) означает,  что  в  конце
 
                    сортировки  левый  элемент  должен оказаться после
 
                    правого.
 
 
 
 Возвращаемое       Нет.
 
 значение
 
 
 
 Переносимость      Функция поддерживается на системах UNIX и стандар-
 
                    том ANSI C.
 
 
 
 Смотрите также     bsearch, lsearch.
 
 
 
 Пример:
 
 
 
 #include<stdio.h>
 
 #include<stdlib.h>
 
 #include<string.h>
 
 
 
 int sort_function(const void *a,const void *b);
 
 
 
 char list[5][4] = {"cat", "car", "cab", "cap", "can"};
 
 
 
 int main(void)
 
 {
 
 int x;
 
 qsort((void *)&list, 5, sizeof(list[0]), sort_function);
 
 for(x=0; x<5, x++)
 
     printf("%s\n",list[x]);
 
 }
 
 
 
 int sort_function(const void *a,const void *b)
 
 {
 
    return(strcmp(a,b));
 
 }
 
 
 
 
 
 Вывод:
 
 cab
 
 can
 
 cap
 
 car
 
 cat


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS