#10 closed ожидается проверка (задача сдана)
task1
Reported by: | Luchko Alexander | Owned by: | Vladimir Rutsky |
---|---|---|---|
Priority: | проверка | Milestone: | |
Component: | HA#1 matrices | Version: | 1.0 |
Keywords: | Cc: |
Description
Please review this solution. Task1 matrices!
Change History (7)
comment:1 Changed 8 years ago by
Milestone: | ha1-milestone1 → ha1-milestone2 |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 8 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:3 Changed 8 years ago by
Milestone: | ha1-milestone2 → ha1-deadline |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Замечания:
- При обработке ошибок вы не всегда освобождаете выделенную память. Например, если файл не удалось открыть.
comment:4 follow-up: 5 Changed 8 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Здравствуйте
Всё исправил, но не понял зачем освобождать память перед выходом из программы, ведь она автоматически освободится. Во всех местах там идёт затем return -1;
comment:5 Changed 8 years ago by
Replying to luchko.aleksandr:
Здравствуйте
Всё исправил, но не понял зачем освобождать память перед выходом из программы, ведь она автоматически освободится. Во всех местах там идёт затем return -1;
Вся явно выделенная память, должна быть явно освобождена --- это "хороший тон" при написании программ.
У такого поведения есть ряд преимуществ: всегда можно извлечь замкнутый кусок функциональности и превратить его в библиотеку или использовать в другой программе; при использовании инструментов проверки утечки памяти не нужно показывать инструменту, где настоящие утечки, а где утечки, которые автор посчитал допустимыми; при необходимости в дальнейшем модифицировать программу не придётся разбираться какая память будет освобождена в ходе работы программы, а какая память не освобождается до конца работы программы, чтобы случайно дважды не освободить одну и ту же память.
В общем случае в дальнейшем вам нужно будет использовать умные указатели, контейнеры, RAII, и другие средства, которые значительно облегчают работу с памятью (и которые запрещены к использованию в первой программе).
Замечания:
matrices.cpp
/matrices.hpp
.main()
вы создаётеMatrix()
в куче, и не удаляете его.