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

Динамический массив и указатели!? - C++

Восстановить пароль Регистрация
 
Vahram1995
 Аватар для Vahram1995
1 / 1 / 0
Регистрация: 20.01.2013
Сообщений: 74
05.05.2013, 16:31     Динамический массив и указатели!? #1
Объясните пожалуйста как можно передать двумерный динамический массив с одной функции в другую с помощью указателей?
И вот эта программа почему не работает?

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
# include <iostream>
using namespace std;
 
void show_array (int *array [] , int number_of_elements) 
{ 
   int i; 
   for (i = 0; i < number_of_elements; i++) 
     cout << *(array+i) << ' '; 
   cout << endl; 
} 
 
int main(void)
{ int i;
   int little_numbers[5] ={1,2,3,4,5}; 
   int big_numbers[3] = { 1000, 2000, 3000 }; 
   for (i=0, i<5, ++i)
   {
   show_array(&little_numbers[i], 5); 
   }
   for (i=0, i<3, ++i)
   {
   show_array(&big_numbers[i], 3); 
   }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2013, 16:31     Динамический массив и указатели!?
Посмотрите здесь:

C++ Задача на массив и указатели.(массив из случайных чисел)
Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла C++
динамический массив (Целое число разложить на массив простых множителей) C++
C++ Массив и указатели. Вывести на экран весь массив и на отдельной строке - значение минимального элемента массива
Написать функцию принимающую массив и возвращающую указатель на динамический массив C++
Запись данных в динамический массив через указатели C++
Массивы и указатели (нужно передать массив I[10] в массив J[10] в обратной последовательности) C++
Как в массив скопировать массив, который заполнен через указатели C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
05.05.2013, 17:24     Динамический массив и указатели!? #2
Цитата Сообщение от Vahram1995 Посмотреть сообщение
как можно передать двумерный динамический массив с одной функции в другую с помощью указателей?
1) Определиться с количеством строк и столбцов.
2) Выделить память под двумерный динамический массив
3) Изнасиловать массив как хочешь и какими хочешь функциями
4) Обязательно очистить память, ибо надо убирать за собой.

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
47
48
49
50
51
52
53
54
55
56
57
58
# include <iostream>
using namespace std;
 
void show_array (int *arr [] ,const int N,const int M)  //В Функцию двумерный массив, число колонок и число строк, ибо двумерный
{ 
  for (int i=0;i<N;i++)
  {
      for (int j=0;j<M;j++)
      {
          cout<<arr[i][j]<<"\t";
      }
      cout<<"\n";
  }
} 
 
/*ЗАПОЛНЕНИЕ*/
void fill_array(int *Arr[],const int N,const int M)  //В Функцию двумерный массив, число колонок и число строк, ибо двумерный
{
    int count=100;
    for (int i=0;i<N;i++)
    {
        for (int j=0;j<M;j++)
        {
            count++;
            Arr[i][j]=count;
        }
    }
}
 
int main(void)
{  
    int N=3,M=4;  //Определи число колонок и строк
    int **Arr; //Это будет двумерный динамический массив
    
 
     
    /* Выделяем память под матрицу */
    Arr = new int*[N]; // Выделяем память под массив строк матрицы 
    
    /* Выделяем память под каждую строку матрицы */
    for(int i = 0; i < N; ++i)
     Arr[i] = new int[M];
 
 
          fill_array(Arr,N,M); //Заполняй массив 
          show_array(Arr,N,M); //Массив на экран
 
 
    /* Удаление матрицы */
    /* Удаление каждой строки матрицы */
    for(int i = 0; i < N; ++i)
       delete[] Arr[i];
 
    delete[] Arr; // Удаление массива строк матрицы 
 
    cin.get();
 
}

Цитата Сообщение от Vahram1995 Посмотреть сообщение
И вот эта программа почему не работает?

Не по теме:

потому как ошибка на ошибке.

Yandex
Объявления
05.05.2013, 17:24     Динамический массив и указатели!?
Ответ Создать тему
Опции темы

Текущее время: 17:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru