![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Shmell |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 14.2.2012 Репутация: нет Всего: нет |
Здравствуйте!
Имеется программа поиска коллизий в хэш-функции
Указатель key, очевидно, указывает в никуда, но не могу понять, как исправить ситуацию. Помогите, пожалуйста. Отладка Это сообщение отредактировал(а) Shmell - 14.2.2012, 21:55 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
scanf ожидает указатель на int, а ты даёшь ему указатель на char -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Shmell |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 14.2.2012 Репутация: нет Всего: нет |
Diabolis Interium! Исправил!
Но проблема осталась. И еще есть замечания такого типа: |
|||
|
||||
| feodorv |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
Это нормально, что индекс таблицы (ELFHash(&key, n)+i*3+i*i*7) может превысить её размер (n)? И? В варнингах предлагается отказаться от scanf в пользу scanf_s))) Добавлено через 11 минут и 12 секунд Строка задаётся как массив символов:
Соответственно, считать строку можно так:
(здесь не учитывается размер буфера key, может произойти переполнение, из-за чего и нужна scanf_s) либо через fgets( key, sizeof(key), stdin) / gets(key). В последних случаях в считываемую с консоли строку попадает символ '\n' (перевод строки). Почему здесь тупо берётся n (фиксированное, означающее к тому же размер таблицы), а не strlen(key) (то есть длина ключа в байтах)???? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |