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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
gr_8_zizu
13 / 8 / 2
Регистрация: 07.01.2011
Сообщений: 149
#1

Динамика, динамика и снова динамика - C++

28.07.2011, 11:15. Просмотров 2267. Ответов 6
Метки нет (Все метки)

Вот как сделать например, что бы динамический массив например
C++
1
2
3
4
int **pArray = new int*[rows];
 
for(int i = 0; i < rows; i++)
  pArray[i] = new int[cols];
Объявлялся еще в одном for-е и на каждой последующей итерации новое имя массива было такое(i=1 pArray1, i=2 pArray2 ... и т.д.)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2011, 11:15     Динамика, динамика и снова динамика
Посмотрите здесь:
C++ Динамика
Динамика C++
О сигналах динамика ПК C++
C++ Beep() - музыка из динамика
Динамика и статика (массивы) C++
C++ Уменьшение числа(динамика)
C++ Динамика в двумерном массиве
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
28.07.2011, 11:20     Динамика, динамика и снова динамика #2
Цитата Сообщение от gr_8_zizu Посмотреть сообщение
Вот как сделать например, что бы динамический массив например
C++
1
2
3
4
int **pArray = new int*[rows];
 
for(int i = 0; i < rows; i++)
  pArray[i] = new int[cols];
Объявлялся еще в одном for-е и на каждой последующей итерации новое имя массива было такое(i=1 pArray1, i=2 pArray2 ... и т.д.)
Может быть шаблоны?
А вообще-то в С++ нельзя динамически формировать имя переменной.
Если только на этапе компиляции. Но тут вы получите столько циклов, сколько раз сгенерите имя - для каждого имени - отдельный цикл.

Почему нельзя сделать массив массивов?
LosAngeles
Заблокирован
28.07.2011, 11:22     Динамика, динамика и снова динамика #3
подозреваю что тебе нужно нечто такое
C++
1
2
3
4
5
6
void myAlloc(int **pArray)
{
    int **pArray = new int*[rows];
 
    for(int i = 0; i < rows; i++)
        pArray[i] = new int[cols];
}
а вкоде вызывать
C++
1
2
3
4
int **pArray1;
int **pArray2;
MyAlloc(pArray1);
MyAlloc(pArray2);
в таком случае парную функцию не забудь приделать
-=ЮрА=-
Заблокирован
Автор FAQ
28.07.2011, 11:41     Динамика, динамика и снова динамика #4
Сделай массив 3-х мерным, тогда каждый элемент 1-го измерения будет отдельным 2-х мерным массивом. Вот код и скриншот:
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
#include <stdio.h>
#include <conio.h>
 
int main()
{
    printf("Enter num of arrays :");
    int nArr;scanf("%d",&nArr);
    int ***pArray = new int **[nArr];
    printf("Enter rows of Array :");
    int rows;scanf("%d",&rows);
    printf("Enter cols of Array :");
    int cols;scanf("%d",&cols);
 
    
    for(int i = 0,j,k; i < nArr; i++)
    {
        printf("\tpArray%d\r\n",i);
        pArray[i] = new int *[rows];
        for(j = 0; j < cols; j++)
        {
            pArray[i][j] = new int[cols];
            for(k = 0; k < cols; k++)
            {
                pArray[i][j][k] = i + j + k;
                printf("%d ",pArray[i][j][k]);
            }
            printf("\r\n");
        }
        printf("\r\n");
    }
    printf("Press any key to continue\r\n");
    getch();
    return 0;
}
Миниатюры
Динамика, динамика и снова динамика  
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
28.07.2011, 12:12     Динамика, динамика и снова динамика #5
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Почему нельзя сделать массив массивов?
Это и есть массив массивов
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
28.07.2011, 13:43     Динамика, динамика и снова динамика #6
Цитата Сообщение от Mayonez Посмотреть сообщение
Это и есть массив массивов
Добавьте еще одно слово "массивов"...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2011, 19:39     Динамика, динамика и снова динамика
Еще ссылки по теме:
C++ Динамика,С++,предметная область Аптека
C++ Динамика. Не могу к подзадаче свести и всё тут(
C++ Динамика. Определить номера строк матрицы в которых знаки элементов чередуются.
C++ и снова С++
C++ и снова змейка

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

Или воспользуйтесь поиском по форуму:
gr_8_zizu
13 / 8 / 2
Регистрация: 07.01.2011
Сообщений: 149
28.07.2011, 19:39  [ТС]     Динамика, динамика и снова динамика #7
Цитата Сообщение от LosAngeles Посмотреть сообщение
подозреваю что тебе нужно нечто такое
C++
1
2
3
4
5
6
void myAlloc(int **pArray)
{
    int **pArray = new int*[rows];
 
    for(int i = 0; i < rows; i++)
        pArray[i] = new int[cols];
}
а вкоде вызывать
C++
1
2
3
4
int **pArray1;
int **pArray2;
MyAlloc(pArray1);
MyAlloc(pArray2);
в таком случае парную функцию не забудь приделать
Какую функцию куда приделать?
Yandex
Объявления
28.07.2011, 19:39     Динамика, динамика и снова динамика
Ответ Создать тему
Опции темы

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