С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Статический массив двухмерных динамических массивов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблемы с курсаком http://www.cyberforum.ru/cpp-beginners/thread975725.html
В общем задача такая, написать программу которая переводит слова в цифры! Например: один = 1, два = 2, пять тысяч семьсот пятнадцать = 5715. Написал бы сам, но я даже представления не имею как это...
C++ Реализация разбиения числа с Динам. Прогр Доброго времени суток. Нужна помощь: как с помощью динамического программирования реализовать решение такой вот задачи: "найти количество разбиений числа на не повторяющиеся слагаемые". То есть,... http://www.cyberforum.ru/cpp-beginners/thread975701.html
C++ Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка
Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка. использовать только for
Написать программу, которая предлагает пользователю ввести два числа, которые определяют диапазон, вычисляет сумму всех четных чисел и произведение C++
Написать программу, которая предлагает пользователю ввести два числа, которые определяют диапазон, вычисляет сумму всех четных чисел и произведение всех нечетных чисел, входящих в этот диапазон и...
C++ Написать программу, которая предлагает пользователю ввести число и выводит в консоль его справа налево, то есть перевернув http://www.cyberforum.ru/cpp-beginners/thread975681.html
Написать программу, которая предлагает пользователю ввести число и выводит в консоль его справа налево, то есть перевернув. использовать только while
C++ Должно работать, но выдает ошибку #include <iostream> #include <windows.h> using namespace std; class Knuckle{ public: int flag; int x; int y; }; подробнее

Показать сообщение отдельно
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 460

Статический массив двухмерных динамических массивов - C++

12.10.2013, 21:27. Просмотров 276. Ответов 3
Метки (Все метки)

Необходимо создать статический массив двухмерных динамических массивов (матриц). Т.е. чтобы была некая стопка матриц, одна под другой. Очень важно, чтобы созданные матрицы были все инициализированы нулями.
Вот как делаю я:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#define N 10
float**Array[N];   // N - число матриц
int m = 5; // кол-во строк в каждой матрице
int n = 9; // кол-во столбцов в каждой матрице
int k, i;
 
for (k = 0; k < N; k++)  // Прописывает NULL для дальнейшей проверки перед удалением матриц
    {
        Array[k] = NULL;
    }
 
    for (k = 0; k < N; k++)    // выделяем память под новые данные
    {
 
        Array[k] = new float*[m];       // m-строк
 
        for (i=0; i<m; i++)
        {
             Array[k][i] = new float[n];   // n-столбцов
             memset(Array[k][i], 0, sizeof(float)*n); // обнуление данных
        }
    }
 
for (k = 0; k < N; k++) 
{
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
   // Правильный ли здесь порядок следования i, j, k? По смыслу для меня важно, 
   // чтобы i - это был номер строки, j - номер столбца, k - номер матрицы
                        Array[k][i][j] = rand();
                }
        }
}
 
    for (k = 0; k < N; k++)    // удаляем данные
    {
        if (Array[k])
        {
            for (i=0; i<m; i++)
                delete[]Array[k][i];
 
            delete[]Array[k];
        }
    }
Посмотрите, все верно в программе? Нигде я не вылезаю за пределы массива? Правильно ли идет индексация по i, j, k? Правильно ли я (безопасно ли и полностью ли) обнуляю все исходные матрицы? Правильно ли и безопасно ли удаляются данные в конце программы?

Не по теме:

P.S. Сперва хотел создать топик в разделе "c++ для экспертов", но сайт меня блокирует.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.