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

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

Войти
Регистрация
Восстановить пароль
 
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
#1

массив - C++

21.04.2011, 09:52. Просмотров 535. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
cout<<"Enter n:"<<endl;
        int n;
        cin>>n;
        cout<<"Enter m:"<<endl;
        int m;
        cin>>m;
 
        int** M=new int*[n];
        int i;
        for(i=0; i<n; i++)
        {
                M[i]=new int[m];
        }
поясните чайнику что значит int** M=new int*[n];
C++
1
2
3
4
5
        int i;
        for(i=0; i<n; i++)
        {
                M[i]=new int[m];
        }
что за int** M на что она ссылается и на что ссылается new int*[n] и зачем тут операция присвоения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 09:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массив (C++):

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

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

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

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

Есть массив одинаковых элементов, сделать функцию делающую массив различных - C++
Дан одномерный массив, среди элементов которого есть совпадающие. Разработать функцию, создающую массив из различных элементов.

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

3
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
21.04.2011, 10:50 #2
Цитата Сообщение от .Malek. Посмотреть сообщение
поясните чайнику что значит int** M=new int*[n];
Динамическое выделение памяти
Цитата Сообщение от .Malek. Посмотреть сообщение
что за int** M на что она ссылается и на что ссылается new int*[n] и зачем тут операция присвоения
int ** - этой указатель на указатель типа int. То есть M - это массив указателей. Для каждого из этих указателей так же выделяется память, и каждый из этих указателей в свою очередь ссылается на участок памяти.
В общем здесь происходит динамическое выделение памяти для матрицы.
0
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
21.04.2011, 10:55  [ТС] #3
т.е. если взять для примера матрицу
123
456
789
то операцией new int*[n] мы выделяем память для столбца 147 и присваиваем М?
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
21.04.2011, 11:17 #4
Цитата Сообщение от .Malek. Посмотреть сообщение
то операцией new int*[n] мы выделяем память для столбца 147 и присваиваем М?
вообще так выделяется память под любой массив. и в случае, если этот массив часть матрицы то это будет строка, а не столбец.
В общем взгляни на картинку.
массив
Сначала имеется указатель int **M. Он ни на что не указывает, следовательно пока что он не валиден. Затем к нему применяется операция new int *[n]. Здесь выделяется память на массив указателей типа int. Указатель `M' теперь указывает именно на этот массив. Каждый из указателей в массиве M[0], M[1] ... M[n-1] пока еще не валиден. На следующем этапе в цикле выделяется память для каждого из этих указателей. То есть в итоге получается, что M - это массив массивов. В общем на картинке я думаю это все более понятно будет, чем на словах.
И очень важно очищать память после использования. В порядке обратном выделению, то есть сначала для каждого M[i], а потом для M.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2011, 11:17
Привет! Вот еще темы с ответами:

Массив: Переместить в массив Y все числа, дробная часть которых больше 5. - C++
Помогите решить, вообще не понимаю как в С++ с дробной частью работать. Задан массив X(N) дробных чисел. Переместить в массив Y все...

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

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

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)


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

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

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