Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
znseday
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 505
1

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

12.10.2013, 21:27. Просмотров 332. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2013, 21:27
Ответы с готовыми решениями:

обработка двухмерных динамических массивов
Помогите пожалуйсто с задачкой написать программу по обработке динамических массивов, размеры...

Написать игру "крестики-нолики" с помощью двухмерных динамических массивов
Напишите игру крестики нолики с помощью двухмерных динамических массивов C++

Разделить статический массив на три динамических массива. Не могу понять, что сделал не так
Вроде все логично. Но результат не радует. #include &lt;iostream&gt; #include &lt;ctime&gt; using...

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с...

3
VEINHORN
544 / 93 / 49
Регистрация: 16.12.2011
Сообщений: 317
12.10.2013, 22:31 2
znseday, а у вас компилируется этот код?
0
znseday
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 505
12.10.2013, 23:44  [ТС] 3
Ну я
C++
1
int j;
потерял, когда сюда копипастил...
0
znseday
18 / 18 / 7
Регистрация: 20.03.2012
Сообщений: 505
14.10.2013, 17:21  [ТС] 4
Люди, кто что скажет? Все норм? (программа написана 100% мною)
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2013, 17:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

создать статический массив строк как статический массив указателей на строки, задание ниже -->
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по...

двухмерных массивов
Привет ребята=)!!!Помогите пожалуйста в решении задач....А то в двухмерных массивах я вообще не...

Инициализация двухмерных массивов
Доброго времени суток. Объясните, пожалуйста, почему так все работает нормально: int x =...

Обработка двухмерных массивов
Не могу понять чем ошибка в коде , я в этом деле новичек , так что сильно не удивляйтесь Условие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.