|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.02.2012, 18:31 | #1 | |
Пользователь
Регистрация: 10.08.2011
Сообщений: 30
|
Функция возвращает неправильный указатель
Пытаюсь написать функцию двоичного поиска. По условию задачи: подается новый элемент и функция должна вернуть указатель на место включения элемента в упорядоченной массив.
Функцию вроде как написал, но работает она некорректно. О функции: на вход в функцию подаются ссылки на левую и правую границу упорядоченного массива и ссылка на новый элемент. В чем проблема: поиск идет, правильную позицию находит, но при выходе из функции возвращается неправильное значение. Т. е, на строке: if(*Value>=*Right) {printf("Right+1 = %p\n",(Right+1)); getch(); return Right+1;} функция printf показывает верный результат. Но в res на строке: res=Binary_Search(&A[0],&A[8],&C); присваивается совершенно не то значение. Вот результаты исполнения: Цитата:
P. S. Массив char используется, т. к. лаб. работа посвящена символьным массивам. P. P. S. Забыл сказать, что код чисто C (не C++) и используется консольное приложение в Borland C++Builder 6. Код:
Последний раз редактировалось RomanA; 25.02.2012 в 18:47. |
|
25.02.2012, 18:59 | #2 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Ваша функция работает правильно (насколько я могу судить).
Просто очепятка в printf("%p < %p = %p",&A[3],&res,&A[4]); Вы берете адрес на указатель а надо просто printf("%p < %p = %p",&A[3], res,&A[4]); |
25.02.2012, 19:00 | #3 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Вот здесь
Код:
Уберите у res амперсанд.
Форматируйте код, будьте людьми.
|
25.02.2012, 19:06 | #4 |
Пользователь
Регистрация: 10.08.2011
Сообщений: 30
|
Оййй... спасибо большое)))
Я уже себе мозг сломал))) |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функция не возвращает данные. | Abuhamed | JavaScript, Ajax | 4 | 26.10.2011 10:33 |
Функция возвращает массив | Рик | Общие вопросы Delphi | 5 | 22.03.2011 09:07 |
Функция Pos возвращает 0 | gufon | Общие вопросы Delphi | 16 | 14.03.2011 22:10 |
функция не возвращает результат=( | Chica Bond | Общие вопросы C/C++ | 14 | 03.12.2010 18:47 |
Функция не возвращает значения 2.0 | Winlook | PHP | 1 | 10.05.2010 00:58 |