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

ВИДЕОКУРС ВЗЛОМ
выпущен 10 декабря!


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

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



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

Функция Выполняет линейный поиск.

 
 
 
 Синтаксис          #include<stdlib.h>
 
                    void *lsearch(const void *key, void *base,
 
                          size_t num, size_t width,
 
                          int(*fcmp)(const void *, const void *));
 
 
 
 Файл, содержащий   stdlib.h
 
 прототип
 
 
 
 Описание           lsearch производит  просмотр  таблицы.  Т.к.   это
 
                    линейный поиск, то элементы таблицы не должны быть
 
                    отсортированы, перед вызовом функции lsearch. Если
 
                    элемент,  на  который  указывает key,  не найден в
 
                    таблице, то lsearch добавляет его к ней.
 
 
 
                    base - это  указатель  на  базу  (0-ой  элемент)
 
                           таблицы.
 
 
 
                    num - указывает на  целое  значение,  определяющее
 
                          число элементов в таблице.
 
 
 
                    key - указывает на искомый элемент.
 
 
 
                    wight- содержит размер элемента таблицы в байтах.
 
 
 
                    Аргумент fcmp  указывает  на  программу  сравнения
 
                    написанную пользователем.  Она  должна  сравнивать
 
                    два элемента и возвращать результат сравнения.
 
 
 
                    При просмотре  таблицы  lsearch вызывает программу
 
                    сравнения, на которую указывает аргумент fcmp.
 
 
 
                    При каждом  вызове  программы  сравнения   lsearch
 
                    посылает  ей  два  ппараметра:  key - указатель на
 
                    искомый элемент,  и elem - указатель на элемент  в
 
                    таблице.
 
 
 
                    fcmp может  интерпретировать  полученные параметры
 
                    любым путем.
 
 
 
 Возвращаемое       lsearch возвращает адрес первого элемента в табли-
 
 значение           це, совпадающего с искомым.
 
 
 
                    Если key совпадает с elem, то fcmp возвращает 0, в
 
                    противном   случае   fcmp   возвращает   ненулевое
 
                    значение.
 
 
 
 Переносимость      lsearch доступна в системах UNIX.
 
 
 
 Смотрите также     bsearch, lfind.
 
 
 
 Пример:
 
 
 
 #include<stdlib.h>
 
 #include<stdio.h>
 
 #include<string.h>
 
 
 
 /* инициализировать число цветов */
 
 char *color[10] = {"Red","Blue","Green"};
 
 int ncolors = 3;
 
 
 
 int colorscmp(char **arg1, char **arg2)
 
 {
 
   return(strcmp(*arg1,*arg2));
 
 }
 
 
 
 int addelem(char *color)
 
 {
 
   int oldn = ncolors;
 
   lsearch(&color, colors, (size_t*)&colors,
 
                  sizeof(char*), colorscmp);
 
   return(ncolors = oldn);
 
 }
 
 
 
 int main(void)
 
 {
 
   int i;
 
   char *key = "Purple";
 
 
 
   if(addelem(key))
 
     printf("%s уже в таблице", key);
 
 else
 
     printf("%s добавлен в таблицу цветов ",
 
             "теперь в ней %d цветов",key,ncolors);
 
 printf("Цвета:");
 
 for(i=0; i<ncolors; i++)
 
     printf("%s\n",colors[i]);
 
 }


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

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




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



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


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