|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.10.2012, 11:06 | #1 |
Новичок
Джуниор
Регистрация: 26.09.2012
Сообщений: 2
|
Проблемы с памятью в длинной арифметике
Привет.
Я пишу сейчас длинную арифметику. Сложение,вычитание и все дополнительные функции(сдвиг,нахождение старшего бита...) работают коректно. Конец числа определяеться -1. Числа храняться в системе исч. 2^12 . Умножение я сделал алгоритмом Карацубы. И с ним проблема : при небольших входных числах всё правильно,а при длинных числах(256 бит,например) ошибка памяти : поврежнение кучи. Помогите разобраться пожалуйста! уже неделю бьюсь над этим( Вот код: Код:
Последний раз редактировалось Stilet; 27.10.2012 в 18:37. |
27.10.2012, 18:29 | #2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
1) Используйте отладчик для определения точки падения программы.
2) Структурируйте программу. Сейчас метод слишком большой, в нём много переменных с неговорящими названиями, а переменная k объявлена дважды. Такой стиль провоцирует ошибки и уничтожает Вашу возможность модифицировать код спустя некоторое время. 3) new[] вижу, delete[] не вижу. Одна из возможных причин описанной ошибки - освобождение памяти, выделенной специальной формой оператора new[], оператором delete, а не delete[]. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача по целочисленной арифметике | Gamst | Помощь студентам | 8 | 24.06.2012 11:05 |
вопрос по адресной арифметике | Dimanw92 | Общие вопросы C/C++ | 4 | 21.05.2012 21:58 |
ошибка в арифметике | Figushkin | Помощь студентам | 1 | 09.06.2010 07:11 |
Проблемы с виртуальной памятью. | DeKot | Операционные системы общие вопросы | 13 | 29.05.2009 11:10 |
Вопрос по адресной арифметике и Message в консольных приложениях | Enikov | Помощь студентам | 5 | 01.01.2009 19:44 |