41 / 41 / 5
Регистрация: 29.04.2012
Сообщений: 185
|
||||||||||||||||
1 | ||||||||||||||||
Утечка памяти12.11.2012, 18:39. Показов 2330. Ответов 27
Метки нет (Все метки)
Доброго времени суток, форумчане. Помогите справиться с утечкой памяти, не понятно где зараза засела. Это класс представления числа в СОК (система остаточных классов) На вход подается лишь одно число и возникает проблема, если это (число < 2310) то всё нормально и отлично, при этом получается 6 остатков, но как только (число >= 2310), тогда количество остатков становится больше 6, и выбивает исключение об утечки памяти, после оператора return в main.cpp
0
|
12.11.2012, 18:39 | |
Ответы с готовыми решениями:
27
утечка памяти Утечка памяти?! Утечка памяти Утечка памяти |
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
|
|
12.11.2012, 18:45 | 2 |
Мне кажется, или нужно сначала присваивать 0, а потом удалять?
0
|
41 / 41 / 5
Регистрация: 29.04.2012
Сообщений: 185
|
|
12.11.2012, 18:50 [ТС] | 3 |
Дело не в деструкторе, я уверен в этом на 90%, а в функции Show, поскольку если я запускаю без неё, то всё нормально проходит.
0
|
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
|
||||||
12.11.2012, 18:54 | 4 | |||||
0
|
41 / 41 / 5
Регистрация: 29.04.2012
Сообщений: 185
|
|
12.11.2012, 18:57 [ТС] | 5 |
Строку это добавить не помешает, но дело не в этом указателе, я объявлял даже статичным массив этот, всё равно не помогло.
0
|
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
|
||||||
12.11.2012, 19:03 | 6 | |||||
Ну не знаю... Вот вы два раза виделяете память для:
0
|
41 / 41 / 5
Регистрация: 29.04.2012
Сообщений: 185
|
|
12.11.2012, 19:04 [ТС] | 7 |
Ну так память выделяется на 2 разных будущих массива и она потом в деструкторе освобождается, ошибку выбивает уже после того как прошел return, то есть после выполнения деструктора
0
|
12.11.2012, 19:04 | 8 | |||||
Наверняка выход за пределы массива.
Я ставил точки останова в конструкторе, Create и деструкторе вводил 6553 - вылетает, но Удаляются точно те адреса, что были выделены. Значит память не терялась. Наверняка выход за пределы массива. К таким вещам:
0
|
41 / 41 / 5
Регистрация: 29.04.2012
Сообщений: 185
|
|
12.11.2012, 19:08 [ТС] | 9 |
Что именно тут может быть не так? И если ошибка здесь, то она почему то проявляется только тогда, когда если функция show ? Если это функции нет, то всё нормально с любыми числами в пределах диапазона. Убрал функцию Show из main.cpp, запустил с числом 6553, ничего не выбило, отлично отработало, а как только обратно решил использовать Show, тут же получил исключение
0
|
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
|
||||||
12.11.2012, 19:13 | 10 | |||||
Buildog,
Добавлено через 54 секунды Ведь там утечка тоже происходит.
0
|
41 / 41 / 5
Регистрация: 29.04.2012
Сообщений: 185
|
||||||
12.11.2012, 19:13 [ТС] | 11 | |||||
Если бы в этом дело было, я бы давно исправил, строки освобождения памяти
0
|
41 / 41 / 5
Регистрация: 29.04.2012
Сообщений: 185
|
|
12.11.2012, 19:22 [ТС] | 14 |
Убрал, всё равно исключение есть
HEAP[Lab1 SOK.exe]: Invalid address specified to RtlValidateHeap( 006B0000, 006BA070 ) Lab1 SOK.exe вызвал срабатывание точки останова.
0
|
41 / 41 / 5
Регистрация: 29.04.2012
Сообщений: 185
|
||||||||||||||||
12.11.2012, 19:26 [ТС] | 16 | |||||||||||||||
main.cpp
0
|
Неэпический
|
||||||
12.11.2012, 19:34 | 17 | |||||
Переделал немного конструктор с параметром и функцию show
sok.cpp
0
|
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
|
||||||
12.11.2012, 19:35 | 18 | |||||
Buildog,
0
|
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
|
|
12.11.2012, 19:41 | 20 |
Croessmah, когда я убрал эту строку, ошибка пропала.
Добавлено через 1 минуту NumbCount ведь не инициализирован.
0
|
12.11.2012, 19:41 | |
12.11.2012, 19:41 | |
Помогаю со студенческими работами здесь
20
Утечка памяти утечка памяти Утечка памяти Утечка памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |