Opened 3 years ago

Closed 3 years ago

#343 closed ожидается проверка (задача сдана)

WW #7

Reported by: savinov.vladislav Owned by: Святослав Власов
Component: WW Matrix Version: 2.0
Keywords: Cc:

Description


Change History (5)

comment:1 Changed 3 years ago by Святослав Власов

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

Выводить usage при запуске CLI не нужно, это сломало все тесты)

  1. Валгринд изрыгает тонны ошибок. Проверяй им и ищи что не так.
  2. Подумай как можно выделять память под матрицу меньшим количеством вызовов new, ты даже знаешь как это делать
  3. Зачем ты в print делаешь приведение f к типу FILE*, когда он и так имеет тип FILE*?
  4. Реализация присваивающих операторов через неприсваивающие приведет к лишним выделениям памяти и копированиям элементов. Так делать не нужно. Лучше наоборот, реализовать неприсваивающие операторы через присваивающие.
  5. Хочется увидеть ассерты вместо сегфолтов, если размеры матриц вдруг не совпадают.

comment:2 Changed 3 years ago by Святослав Власов

UPD:

  1. operator!= работает неверно!

comment:3 Changed 3 years ago by savinov.vladislav

Version: 1.02.0

comment:4 Changed 3 years ago by savinov.vladislav

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

comment:5 Changed 3 years ago by Святослав Власов

Resolution: задача сдана
Status: assignedclosed
  1. Аллоцируешь слишком много памяти. Аргументом оператора new T[...] выступает количество элементов типа T, память под которые должна быть выделена, а не количество байт, как у функции malloc.
  2. В операторах += и -= ты по прежнему выделяешь память под еще одну матрицу. Это избыточно. Ты можешь просто добавлять элементы матрицы-аргумента к текущей матрицы, зачем новую-то выделять? Новую обязательно выделять только в операторе *=, потому что в этом случае результат -- это матрица другого размера.

8.5/10

Note: See TracTickets for help on using tickets.