Как создать динамическую матрицу?

Ответить
prikolist
Сообщения: 38
Зарегистрирован: 19 ноя 2008, 13:09

Здравствуйте программисты! Дали задание по матрицам, дело в том,что их нужно создать динамически. Читал в книге,про это слишком мало написанно, вроде существуют функции, calloc,malloc,realloc. Подскажите пожалуйста,или намекните,как примерно нужно реализовать этими функциями,задачу ниже.Заранне благодарен за ответ.
Создать и вывести на экран динамическую матрицу целых чисел указанного размера (размер задается в диалоге). Матрицу заполнить с помощью датчика случайных чисел.

Вот фото,как дожна выглядеть программа.
Вложения
Фото.zip
(34.71 КБ) 41 скачивание
Аватара пользователя
Airhand
Сообщения: 239
Зарегистрирован: 06 окт 2005, 16:21
Откуда: Dnepropetrovsk

Это на С функции calloc,malloc,realloc. В С++ можно (и нужно) их не использовать. Есть new и delete. Вообще не знаю зачем для матрицы юзать динамику, есть же std::vector.
Вот объявление матрицы:
typedef int* pint;
pint * ppi;

Вот создание матрицы n*m:

Код: Выделить всё

pint tmp;
randomize();
ppi = new ppi;
*ppi = new (pint) n;
for (size_t i = 0; i < n; ++i)
{
    for (size_t j = 0; j < m; ++j)
    {
        tmp = new int;
        *tmp = rand();
    }
    ppi[i] = tmp;
}

Удаление матрицы:

Код: Выделить всё

for (size_t i =0; i < n; ++i)
{
    delete[] ppi[i];
}
delete ppi;
P.S. Фотку не смотрел. Код писал на странице, так что может не компилится.
Оптимизация по скорости:
#define while if
Оптимизация по размеру:
#define struct union
Ответить