Opened 8 years ago

Closed 7 years ago

Last modified 7 years ago

#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 Vladimir Rutsky

Milestone: ha1-milestone1ha1-milestone2
Type: ожидается проверкаожидаются исправления

Замечания:

  1. Решение необходимо оформить выделив функции/классы для работы с матрицами в файлы matrices.cpp/matrices.hpp.
  1. Передавайте объекты константными, если не собираетесь их изменять внутри функции:
bool createMatrix(char const * file)
...
int add(Matrix const & y)
  1. Используйте одинаковый стиль отступов, сейчас у вас где-то отступ 4 проблела, где-то 2.
  1. Не вся выделенная память освобождается. Например, в main() вы создаёте Matrix() в куче, и не удаляете его.

comment:2 Changed 8 years ago by Luchko Alexander

Type: ожидаются исправленияожидается проверка

comment:3 Changed 8 years ago by Vladimir Rutsky

Milestone: ha1-milestone2ha1-deadline
Type: ожидается проверкаожидаются исправления

Замечания:

  1. При обработке ошибок вы не всегда освобождаете выделенную память. Например, если файл не удалось открыть.

comment:4 Changed 8 years ago by Luchko Alexander

Type: ожидаются исправленияожидается проверка

Здравствуйте
Всё исправил, но не понял зачем освобождать память перед выходом из программы, ведь она автоматически освободится. Во всех местах там идёт затем return -1;

comment:5 in reply to:  4 Changed 8 years ago by Vladimir Rutsky

Replying to luchko.aleksandr:

Здравствуйте
Всё исправил, но не понял зачем освобождать память перед выходом из программы, ведь она автоматически освободится. Во всех местах там идёт затем return -1;

Вся явно выделенная память, должна быть явно освобождена --- это "хороший тон" при написании программ.

У такого поведения есть ряд преимуществ: всегда можно извлечь замкнутый кусок функциональности и превратить его в библиотеку или использовать в другой программе; при использовании инструментов проверки утечки памяти не нужно показывать инструменту, где настоящие утечки, а где утечки, которые автор посчитал допустимыми; при необходимости в дальнейшем модифицировать программу не придётся разбираться какая память будет освобождена в ходе работы программы, а какая память не освобождается до конца работы программы, чтобы случайно дважды не освободить одну и ту же память.

В общем случае в дальнейшем вам нужно будет использовать умные указатели, контейнеры, RAII, и другие средства, которые значительно облегчают работу с памятью (и которые запрещены к использованию в первой программе).

comment:6 Changed 7 years ago by Vladimir Rutsky

Resolution: задача сдана
Status: newclosed

Решение зачтено.

comment:7 Changed 7 years ago by Vladimir Rutsky

Milestone: ha1-deadline

Milestone ha1-deadline deleted

Note: See TracTickets for help on using tickets.