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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.75
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
#1

Таблица Пифагора через динамические масивы - C++

25.05.2010, 18:28. Просмотров 3340. Ответов 21
Метки нет (Все метки)

НЕ могу понять динамические масивы. Объясните как этот код работает.
Вот пишу пример с книги.
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
// таблица Пифагора
#include <stdio.h>
#include <conio.h>
 
int main() {
   int i, j;
// 1. создание
   int **m = new int *[10]; //Это объявление указателя с 2-ной звёздочкой это как ?
                                   //И вот это ниже объясните  
   for(i = 0; i < 10; i++)  
      m[i] = new int [10];
// 2. инициализация
   for(i = 0; i < 10; i++)
      for(j = 0; j < 10; j++)
         m[i][j] = (i + 1)*(j + 1);
// 3. вывод
   for(i = 0; i < 10; i++) {
      for(j = 0; j < 10; j++)
         printf("%2d ", m[i][j]);
      printf("\n");
   }
// 4. удаление
   for(i = 0; i < 10; i++)
     delete [] m[i];
   delete [] m;
 
   getch();
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 18:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Таблица Пифагора через динамические масивы (C++):

Динамические масивы - C++
Помогите пожалуста !! Сформировать одномерный динамический массив целых чисел. Все положительные элементы массива перенести в начало...

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

Динамические масивы - C++
Помогите написать прошку Составить программу, заполняющую список последовательностью случайных различных целых чисел и суммирующую те...

Динамические одномерные масивы - C++
Не могу создать новый размер динамического массива. Статический работает как надо (мусор присутствует только в начале), а динамический нет...

Динамические масивы - параметры функций - C++
Даны действительные числа A1.....An. Получить: max (A1+An; A2+An-1;......A15+An-2). Обязательно использовать динамический масив!!! ...

Масивы-арифм. прогрессия и таблица. 2задания. - C++
Помогите решить до конца эти задания: 1. Определить, является ли введёный масив а)арифметической прогрессией с шагом д ...

21
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
26.05.2010, 14:37  [ТС] #16
Почему наоборот?
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
26.05.2010, 14:40 #17
new int *[10] выделяет память под указатели, а с помощью m[i] можно обращаться к этим указателям.
0
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
26.05.2010, 14:54  [ТС] #18
То есть когда я написал m[i] , тогда это *[10] стало указывать уже на этот масив m[i]
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
26.05.2010, 15:14 #19
m = new int *[10] - выделить память
m = new int *[10] - для указателей на инт
m = new int *[10] - в количестве 10 штук
m = new int *[10] - записать адрес первого указателя в переменную m. Далее с выделенной памятью ты работаешь с помощью переменной m. *[10] говорит о том, что выделяется память для 10 указателей и только, это ни на что более указывать не может.
1
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
26.05.2010, 21:44  [ТС] #20
int **m = new int *[10]; Так как здесь я выделил память для масива сосотоящего из 10 указателей, из-за того что я выделил память для них именно из-за этого я могу получать доступ к этим указателям и что-то им присваивать, например m[4] = 5738 ?
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
26.05.2010, 21:56 #21
Напрямую указателям лучше ничего не присваивать. Надо использовать значения возвращаемые соответстующими функциями. Тот же new к примеру.
0
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
26.05.2010, 22:28  [ТС] #22
Из-за чего я могу создать 2-мерный массив в тех 3-ёх строках кода?
из-за чего я могу вложенный массив сделать выделив для нег опямять, то есть вот это:
C++
1
2
 for(i = 0; i < 10; i++)
      m[i] = new int [10];
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2010, 22:28
Привет! Вот еще темы с ответами:

Динамические двумерные массивы через указатели. Как это происходит? - C++
Вот типичная идентификация двумерного массива (NxM): int** mass = new int*; for(i=0; i&lt;N; i++) mass = new int; Помогите...

Динамические (или не динамические.) переменные! - C++
УважаемыЕ! Есть вопрос. Вот код программы (ТЗ метод северо-западного угла) - под спойлером. А вот ее маленький кусок,задача которого в том,...

Дерево Пифагора - C++
Дерево Пифагора Пифагор, доказывая свою знаменитую теорему, построил фигуру, где на сторонах прямоугольного треугольника расположены...

Теорема Пифагора - C++
Здравствуйте, программа всякий раз выводит в ответе &quot;0&quot;. В чём ошибка? Благодарен! Язык C++, Visual C++ 2008 Express #include...


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

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

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