54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
||||||||||||||||
1 | ||||||||||||||||
Проблемы с памятью15.04.2013, 09:55. Показов 1117. Ответов 18
Метки нет (Все метки)
Программа создает династическую двумерную матрицу. Не могу найти где происходит утечка памяти. Если несколько раз вводить большие размеры матрицы, то не происходит полная очистка памяти и программа просто закрывается. Помогите найти утечку и очищать память корректно.
Often.h
0
|
15.04.2013, 09:55 | |
Ответы с готовыми решениями:
18
проблемы с памятью.... Сортировки. Проблемы с памятью Проблемы с динамической памятью Проблемы с памятью при сортировке |
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
15.04.2013, 10:58 | 2 |
Wanee, ознакомьтесь в с концепцией RAII для исключения утечек памяти. И не используйте исключения типа int. Это плохой тон. Заведите специальный класс.
Искать утечки в Вашем коде слишком утомительно в силу ужасной кривизны. Проще переписать.
0
|
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
|
15.04.2013, 13:52 [ТС] | 3 |
Tulosba, да логичней использовать свой тип, но по заданию я нельзя пользоваться классами, так что пришлось использовать int.
0
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
15.04.2013, 14:19 | 5 |
thinking
Добавлено через 21 минуту Код попахивает, но ... 1. Кто сказал что у Вас лик? 2. матрицу каких размеров Вы аллоцируете?
0
|
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
|
15.04.2013, 14:22 [ТС] | 6 |
Tulosba, одно из требований "8. Программы реализуются на языке С++ БЕЗ использования классов."
0
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
15.04.2013, 14:24 | 7 |
Используйте функции это раз. Можно енумчик?, нет -> дефайны, это два. Три у вас ошибка на bad alloc !means и Вы не переходите в режим 1 (и примите его по конст реф.)
std::ifstream &stream и std::istream &stream имеют один интерфейс, уберите дублирование кода.
1
|
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
|
15.04.2013, 14:45 [ТС] | 9 |
Tulosba, тогда как задать значение переменной в struct без конструктора?
0
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
||||||
15.04.2013, 14:54 | 10 | |||||
0
|
390 / 365 / 111
Регистрация: 03.02.2013
Сообщений: 1,120
|
|
15.04.2013, 14:59 | 11 |
разница только в одном - class по умолчанию начинает свои методы как private а struct как public
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
15.04.2013, 15:00 | 12 |
Wanee, вся разница между class и struct в c++ в том, что для первого по умолчанию используется private доступ, а для второго - public. Т.е. для структуры можно задавать всё то, что можно для класса, конструктор в том числе.
0
|
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
|
15.04.2013, 15:02 [ТС] | 13 |
stima, а как тогда использовать её в throw?
Добавлено через 55 секунд Tulosba, это да, но если я буду использовать функций и конструкторы в структуре то задание не примут.
0
|
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
|
15.04.2013, 15:09 [ТС] | 15 |
ТРЕБОВАНИЯ К ПРОГРАММАМ
1. Необходимо точно выполнять условия задач, при сомнениях -- консультироваться с преподавателем. Программы представляются в исходных текстах. 2. Программы должны быть написаны самостоятельно. 3. Текст программы должен быть откомментирован. В заголовке указать имя автора, группу, формулировку задания. Имена переменных, функций и проч. должны иметь осмысленные имена. Желательно объявление переменной снабжать комментарием о ее назначении. 4. Следует структурировать программу, разбивая ее на (относительно) независимые части. Осуждается порочная практика размещения многих операторов в одной строке. 5. Длинные программы (свыше 200 строк) следует разбивать на несколько файлов и создавать проект. Это обязательное требование, так как умение работать с проектами квалифицированному программисту необходимо. 6. Интерфейс программы должен быть достаточно удобен для пользователя. Программа должна быть снабжена удобным интерфейсом на базе меню. 7. Программа должна компилироваться без ошибок и предупреждений при всех включенных сообщениях компилятора. 8. Программы реализуются на языке С++ БЕЗ использования классов. 9. Программы должны быть хорошо протестированы перед сдачей. 10. Сроки сдачи: 1-я программа - до 15 октября, 2-я программа - до 7 ноября, 3-я программа - до 1 декабря, 4-я программа - на зачетной неделе 11. См. также отдельные требования в разделах. ТРЕБОВАНИЯ к задачам данного раздела: 1. Программа должна осуществлять анализ командной строки. Если при запуске программе переданы параметры, то первый из них - имя файла, из которого следует брать исходные данные. Если параметры не переданы, то ввод осуществляется из стандартного потока ввода. 2. Результат должен представлять собой функцию (отличную от функции main() ), решающую поставленную задачу. Исходные данные (как правила, матрица и ее размеры) передаются в эту функцию в качестве параметров. Функция main() должна быть демонстрацией возможностей написанной программы. При необходимости можно вводить вспомогательные функции. и само задание: 16. Среди тех строк целочисленной матрицы, которые содержат только нечетные элементы, найти строку с максимальной суммой модулей элементов.
0
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
||||||
15.04.2013, 15:11 | 16 | |||||
Во-первых использовать методы в структуре). Во-вторых забейте на классы и структуры. Для решения вашей задачи они Вам не надо.
Разбейте код, на логические единицы(функции) - у Вас их как минимум 2 (Ваш item 1/2). Используйте возврат значения, как определение удачи/неуспеха, так-как использование исключений в Вашем коде это оверхед (у вас нет возврата по стеку больше чем на фрейм). Заведите хедер с дефайнами о ошибках и туда же функцию ошибка_число->ошибка_строка. Ваш код примет вид
Об стену)
1
|
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
||||||
15.04.2013, 15:12 [ТС] | 17 | |||||
stima, то есть думаете лучше все таки создать структуру и писать как то так?
0
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|||||||||||
15.04.2013, 15:28 | 18 | ||||||||||
Если имя переменной не говорит о ее назначении, то возможно стоит пересмотреть имя?
Добавлено через 9 минут В догонку раз.
Вдогонку 2.
п.с. И если препод такое не примет или скажет не по заданию, смело идите к ректору и говорите что препод такой-то не компетентен.
1
|
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
|
15.04.2013, 15:44 [ТС] | 19 |
stima, спасибо большое)
0
|
15.04.2013, 15:44 | |
15.04.2013, 15:44 | |
Помогаю со студенческими работами здесь
19
std:bad_alloc Проблемы с памятью Проблемы с динамической памятью Проблемы с памятью Проблемы с памятью Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |