4 / 4 / 1
Регистрация: 09.08.2019
Сообщений: 33
1

Как сделать динамический массив глобальным

10.08.2019, 07:22. Показов 335. Ответов 6
Метки нет (Все метки)

Нужно что бы создание, ввод и вывод были в разных функциях

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
#include "pch.h"
#include <iostream>
using namespace std;
 
int main(){
    setlocale(LC_ALL,"Russian");
 
    int zindex = 10, yindex = 5, xindex = 7;
 
    int ***arr = new int**[zindex];
 
    for(int i=0; i<zindex; i++){        //создание массива
        arr[i] = new int*[yindex];
 
        for(int j=0; j<yindex;j++){
            arr[i][j] = new int[xindex];
        }
    }
 
    for(int z=0;z<zindex;z++)       //заполнение
        for(int y=0;y<yindex;y++)
            for(int x=0;x<xindex;x++)
                arr[z][y][x] = rand();
 
    for(int z=0;z<zindex;z++)       //вывод
        for(int y=0;y<yindex;y++)
            for(int x=0;x<xindex;x++)
                cout << arr[z][y][x] << endl;
 
    system("pause");
 
    return 0;
}
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2019, 07:22
Ответы с готовыми решениями:

Как сделать #define глобальным?
у меня есть &quot;definefile.h&quot; в котором объявлено много дефайнов. Я хочу что бы этот файл можно было...

Как сделать #define глобальным?
У меня не получается определить DEBUG, хотя я его объявил в подключенном файле config.h //...

Как сделать комплексное число глобальным, для дальнейшего использования?
Мне нужно чтобы а1, а2, а3 можно было использовать дальше, return a1,a2,a3; почему то не помогает...

Как сделать динамический массив из массивов?
Вот есть задача: надо сделать динамический массив, который будет заполнен n количеством массивов, в...

6
359 / 226 / 120
Регистрация: 25.06.2019
Сообщений: 830
10.08.2019, 07:36 2
глобальный это нехорошо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int*** create(int zindex, int yindex, int xindex)
{
  int ***arr = new int**[zindex];
 
    for(int i=0; i<zindex; i++){        //создание массива
        arr[i] = new int*[yindex];
 
        for(int j=0; j<yindex;j++)
            arr[i][j] = new int[xindex];
    }
  return arr;
}
int main(){
    setlocale(LC_ALL,"Russian");
 
    int zindex = 10, yindex = 5, xindex = 7;
 
    int ***arr = create(zindex,yindex,xindex);
    //ну и т.д
1
4 / 4 / 1
Регистрация: 09.08.2019
Сообщений: 33
10.08.2019, 08:18  [ТС] 3
А как придумать если к массиву будут обращаться порядка 10 функций и каждая будет что то изменять?
0
359 / 226 / 120
Регистрация: 25.06.2019
Сообщений: 830
10.08.2019, 08:24 4
void ЧёТоЗделать(int*** arr,int zindex, int yindex, int xindex)
{
}
0
4 / 4 / 1
Регистрация: 09.08.2019
Сообщений: 33
10.08.2019, 08:39  [ТС] 5
Цитата Сообщение от Pvt Посмотреть сообщение
void ЧёТоЗделать(int*** arr,int zindex, int yindex, int xindex)
{
}
Спасибо! А я в аргументах квадратные скобки ставил, вот у меня компилятор и матерился.
С синтаксисом у меня очень плохо. Я в 93 на турбо паскале писал, а теперь и его не могу вспомнить.
Спасибо!!!
0
359 / 226 / 120
Регистрация: 25.06.2019
Сообщений: 830
10.08.2019, 09:01 6
под конец нужно
C++
1
2
3
4
5
6
7
8
9
void free(int*** arr,int zindex, int yindex)
{
  for(int z=0;z<zindex;z++)
  {
        for(int y=0;y<yindex;y++) delete[] arr[z][y];
        delete[] arr[z];
  }
  delete[] arr;
}
0
4 / 4 / 1
Регистрация: 09.08.2019
Сообщений: 33
10.08.2019, 09:10  [ТС] 7
Цитата Сообщение от Pvt Посмотреть сообщение
под конец нужно
C++
1
2
3
4
5
6
7
8
9
void free(int*** arr,int zindex, int yindex)
{
  for(int z=0;z<zindex;z++)
  {
        for(int y=0;y<yindex;y++) delete[] arr[z][y];
        delete[] arr[z];
  }
  delete[] arr;
}
Удалять массив, но это в конце программы? Или в конце к каждой функции? Тогда данные сотрутся...

Добавлено через 1 минуту
А понял, отдельная функция которая будет очищать массив.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2019, 09:10

Как сделать динамический массив объектов?
IContainer *C = new myString; Есть такая запись, нужно сделать массив из C. IContainer *C =...

Как сделать динамический массив из указателей?
Всем привет! Как сделать динамический массив я знаю,и как сделать массив из указателей я знаю,а...

Как сделать двумерный динамический массив на 4 столбца ?
Что нужно изменить в этом коде чтобы у Mass1 стало 4 столбца? я побывал менять Mass2 = new int64_t;...

Динамический массив при наследовании, элементами которого являются объекты класса наследника динамический массив
Попробовал создать динамический массив, у которого элементы - объекты класса динамический массив,...


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

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

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