Разреженные и уплотненные двумерные массивы: задание и Ответы на задание

Скачайте архив с заготовкой проекта. В ней представлены:

  • способ контроля утечек динамической памяти с помощью библиотеки crtdbg.h;
  • два варианта работы с двумерным массивом в динамической памяти: разреженный массив (массив указателей на массивы значений (строки матрицы)) и уплотненный массив (двумерный массив хранится как одномерный);
  • для обоих вариантов приведено несколько примеров: перегруженные функции ввода массива с клавиатуры, печати массива, проверки наличия нулевого столбца в матрице, проверки наличия нулевой строки в матрице.

Дополнительную информацию о представлении многомерных массивов в C++ можно посмотреть здесь.

Задания.

  1. Устранить ошибку утечки динамической памяти в программе.
  2. Ознакомиться с двумя представленными вариантами работы с двумерными массивами в динамической памяти и решить следующие задачи в двух вариантах (разреженный и уплотненный массив). Добавить обработку ошибок с помощью исключений.

а) Удалить из матрицы все нулевые строки. Если таких строк нет, функция должна выдавать исключение.

б) Удалить из матрицы все нулевые столбцы. Если таких столбцов нет, функция должна выдавать исключение.