#773 closed ожидается проверка (задача сдана)
WW #14
Reported by: | lebedev.egor | Owned by: | Дмитрий Свиридкин |
---|---|---|---|
Component: | WW_exceptions | Version: | 2.0 |
Keywords: | Cc: |
Description
На этот раз должно скомпилироваться с первого раза...
Change History (6)
comment:1 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to lebedev.egor |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:3 Changed 4 years ago by
Owner: | changed from lebedev.egor to Дмитрий Свиридкин |
---|
comment:4 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to lebedev.egor |
---|---|
Type: | ожидается проверка → ожидаются исправления |
При неудачной попытке загрузить из файла и распечатать предыдущий результат valgrind падает от обилия ошибок. Вы совсем не проверяете, что размеры считались.
Обращение к невалидному индексу может приводить к segfault вместо исключения. Проверьте максимально допустимый индекс.
После bad_alloc все безвозвратно умирает. По условию, после всех ожидаемых исключений, программа должна продолжить работу.
class Kostil {
Ну какой же это костыль? Это строка/столбец.
Обычно первая координата --- номер строки, а вторая -- номер столбца. А не наоборот.
Класс исключения стоит унаследовать от кого-то из иерархии std::exception
Вы выделяете память с помощью std::make_unique, почему бы тогда не оставить unique_ptr для указателя на данные матрицы?
5
comment:5 Changed 4 years ago by
Owner: | changed from lebedev.egor to Дмитрий Свиридкин |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
После bad_alloc теперь все умирает только в том случае, если он не смог выделить память под массив матриц (или стринг), ибо непонятно, что с этим вообще можно сделать.
Остальное все, кажется, поправил.
comment:6 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Препутаны строки и столбцы при выводе значения одного элемента.
public: MatrixRow(int max_rows, int* column) noexcept; int& operator[](int row); private: int max_columns_; int* row_;
Что-то у вас названия рассинхронизировались.
9.2
Кажется, после этой ерунды с изменением условий я недостаточно сильно обновил тикет...