Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Sacredd
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 28
#1

Массив - C++

27.06.2012, 01:43. Просмотров 279. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста, объяснить код программы :
C++
1
2
3
int **arr = new int *[size];
for(int i = 0; i < size; i++)
  arr[i] = new int [cols];
Вот этот.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2012, 01:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив (C++):

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать - C++
Добрый Вечер! Написал первую часть программы по этому заданию&quot;Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

Массив: Как скопировать двумерный массив в другой массив? - C++
Как скопировать двумерный массив в другой массив?

Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив... - C++
помогите!!!((( дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько...

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. - C++
Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста код, чтобы первый столбец записывался в...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Заполнить массив первыми ста простыми числами, и вывести массив на экран - C++
Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию массива первыми 100 простыми числами....

6
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
27.06.2012, 01:56 #2
C++
1
2
3
4
5
int **arr = new int *[3]; // выделяет память под три указателя на "указатель на int"
 
    for(int i = 0; i < 3; i++){   
        arr[i] = new int [4]; // выделяет память под 4 int и присваивает его значение i-тому указателю из трех, выделенных в первом операторе
    }
0
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
27.06.2012, 02:07 #3
novi4ok
Боюсь что
C++
1
2
3
4
5
int **arr = new int *[3]; // arr масив укателей на укалатели /*как то так :) */
for (int i = 0; i < 3;++i)
{
 arr[i] = new int[4] /*не скомпилируется ;) */
}
0
Sacredd
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 28
27.06.2012, 02:11  [ТС] #4
спасибо.

Добавлено через 4 минуты
как я понял

C++
1
2
3
int **arr = new int *[size]; //  созхдается в памяти массив размерности size
for(int i = 0; i < size; i++) // цикл заполнения массива по i да ?
arr[i] = new int [cols]; //  а вот тут всё равно не понял
0
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
27.06.2012, 02:35 #5
C++
1
2
3
4
5
6
7
8
9
10
arr[i] = new int [cols];/* тут у нас arr[i] = адрес массива int */
/*попробуйте вот так сделать */
    int size = 5;
    int cols = 4;
    int **arr = new int *[size]; // 
for(int i = 0; i < size; i++) 
{
arr[i] = new int [cols]; 
    cout << arr[i];
}
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.06.2012, 04:03 #6
Добавлено через 2 минуты
Цитата Сообщение от xADMIRALx Посмотреть сообщение
novi4ok
Боюсь что
C++
1
2
3
4
5
int **arr = new int *[3]; // arr масив укателей на укалатели /*как то так :) */
for (int i = 0; i < 3;++i)
{
 arr[i] = new int[4] /*не скомпилируется ;) */
}
Почему? Компилируется.

Добавлено через 28 минут
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
#include <iostream>
using namespace std;
void main()
{
    int size = 5;
    int cols = 6;
    
    int **arr = new int *[size];
    
    for(int i = 0; i < size; i++)
    arr[i] = new int[cols];
    
    for (int j = 0; j < size; j++)
    {
        for (int i = 0; i < cols; i++)
        {
            *(arr[j] + i) = j;
        }
    }
    for (int j = 0; j < size; j++)
    {
        for (int i = 0; i < cols; i++)
        {
            cout << *(arr[j] + i);
        }
        cout << endl;
    }
 
    system("pause");
}
Добавлено через 11 минут
Может быть в конце ещё это дописать:
C++
1
2
3
for (int i = 0; i < size; i++)
        delete [] arr[i];
    delete [] arr;
Добавлено через 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
34
35
#include <iostream>
using namespace std;
void main()
{
    int size = 5;
    int cols = 6;
    
    int **arr = new int *[size];
    
    for(int i = 0; i < size; i++)
    arr[i] = new int[cols];
    
    for (int j = 0; j < size; j++)
    {
        for (int i = 0; i < cols; i++)
        {
            arr[j][i] = j;
        }
    }
    for (int j = 0; j < size; j++)
    {
        for (int i = 0; i < cols; i++)
        {
            cout << arr[j][i];
        }
        cout << endl;
    }
    
    for (int i = 0; i < size; i++)
        delete [] arr[i];
    delete [] arr;
 
 
    system("pause");
}
Добавлено через 5 минут
Цитата Сообщение от Sacredd Посмотреть сообщение
Помогите пожалуйста, объяснить код программы :
C++
1
2
3
int **arr = new int *[size];
for(int i = 0; i < size; i++)
  arr[i] = new int [cols];
Вот этот.
Получается, что это создание двумерного динамического массива.
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
28.06.2012, 06:21 #7
Цитата Сообщение от xADMIRALx Посмотреть сообщение
Боюсь что
Не бойтесь, всё будет хорошо.
0
28.06.2012, 06:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2012, 06:21
Привет! Вот еще темы с ответами:

Массив: Все элементы массива, кратные трем, записать в одномерный массив. - C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.

Дан массив. Записать во второй массив все элементы, не совпадающие с минимальным - C++
Дан массив M(14).Записать в массив B все элементы , не совпадающие с минимальным. Cоставить блок схему программы

Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. - C++
Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. Посмотрите пожалуйста... ...

Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q. - C++
Дан массив K(N).Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q.


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

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

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