Страница 1 из 1

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

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

Вот фото,как дожна выглядеть программа.

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

Добавлено: 18 апр 2009, 11:44
Airhand
Это на С функции 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. Фотку не смотрел. Код писал на странице, так что может не компилится.