Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 452
#1

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

12.10.2013, 21:27. Просмотров 262. Ответов 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++ для экспертов", но сайт меня блокирует.

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2013, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Статический массив двухмерных динамических массивов (C++):

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

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

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

двухмерных массивов - C++
Привет ребята=)!!!Помогите пожалуйста в решении задач....А то в двухмерных массивах я вообще не понимаю=(((....Вот сами задачи: 1....

«Обработка двухмерных массивов» - C++
Прошу помочь.. пожалуйста простым способом очень нужно! заранее спасибо Найти наибольший элемент главной диагонали матрицы А(4х4) и...

Инициализация двухмерных массивов - C++
Доброго времени суток. Объясните, пожалуйста, почему так все работает нормально: int x = {1,1}; А так: int a = 1; int b =...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
12.10.2013, 22:31 #2
znseday, а у вас компилируется этот код?
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 452
12.10.2013, 23:44  [ТС] #3
Ну я
C++
1
int j;
потерял, когда сюда копипастил...
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 452
14.10.2013, 17:21  [ТС] #4
Люди, кто что скажет? Все норм? (программа написана 100% мною)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2013, 17:21
Привет! Вот еще темы с ответами:

Обработка двухмерных массивов - C++
Дана матрица А (5*5) нецелых элементов. -3.8 0 5.3 4.5 0.5 0.2 -1.3 0 -8.5 3.5 -1.1 1.8 5.1 -8.2 0.32 0 -0.3 0 -1.28 0.52 -0.3...

Матрица с использованием двухмерных массивов - C++
Добрый день. Нужна помощь в написании программы. Дана матрица размера M х M. Найти все положительные элементы матрицы. Элементы я должен...

Обработка двухмерных массивов простым способом - C++
Помогите пожалуйста решить лабу простым способом Дана целочисленная квадратная матрица. Определить произведение элементов в тех строках,...

Функция поика минимума и максимума двух двухмерных массивов - найти ошибку - C++
Собственно, проблема в том, что при компиляции, если количество строк или столбцов ( не одновременно ) массива больше 1, то выполнение...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.10.2013, 17:21
Ответ Создать тему
Опции темы

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