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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
daslex
1271 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,706
#1

Инициализация двумерного Динамического массива - C++

14.12.2012, 19:58. Просмотров 3660. Ответов 11
Метки нет (Все метки)

У меня вопрос. Могу ли я создать двумерный динамический массив и инициализировать его своими значениями в коде программы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
    int n=6;
 
    int **M=new int*[n];
      for (int i=0;i<n;i++) M[i]=new int [n];
 
    M[n][n]=     //Попытка инициализации как статического приводит к ошибке
     {   
         1,2,3,4,5,6,
         7,8,9,8,7,6,
         5,4,3,2,1,0,
         1,2,3,4,5,6,
         7,8,9,0,9,1,
         5,3,1,1,3,4
     };
     
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2012, 19:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Инициализация двумерного Динамического массива (C++):

Инициализация двумерного динамического массива - C++
Как задать численные значения элементам двумерного динамического массива при его инициализации? int n=2; double **a; ...

Обьявление и инициализация динамического двумерного массива в классе - C++
Пытаюсь создать в классе динамический двумерный массив, не могу понять что я делаю не так( При вызове деструктора - ошибка class...

Инициализация динамического массива - C++
Прога генерирует случайные числа(1-100) выводит их, пока не встретится 98, сохраняя все в массиве. Но мне нужно очень, чтобы программа сама...

Инициализация Динамического массива - C++
Друзья просмотрите пожалуйста мой динамический массив правильно ли я его длясебястолковал #include&lt;iostream&gt; using namespace std; ...

Инициализация динамического массива - C++
int main() { int a, i = 0; int *array = new int ; std::cout &lt;&lt; &quot;Enter numbers &quot; &lt;&lt; std::endl; while(std::cin &gt;&gt; a) { i &lt;...

Инициализация динамического массива - C++
Создан динамический массив (при помощи функций). Пробую инициализировать при помощи фигурных скобок.:umnik: #include &quot;stdafx.h&quot; ...

11
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
14.12.2012, 20:01 #2
Как-то так должно быть:
C++
1
2
3
4
5
6
    M[6][3]= 
     {   
         { 1,2,3,4,5,6 }, 
         { 7,8,9,8,7,6 }, 
         { 5,4,3,2,1,0 }
     };
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.12.2012, 20:04 #3
Цитата Сообщение от yekka Посмотреть сообщение
Как-то так должно быть:
Так у него массив динамический
1
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
14.12.2012, 20:07 #4
Цитата Сообщение от go Посмотреть сообщение
Так у него массив динамический
тогда в цикле только

Добавлено через 1 минуту
и вообще, что за бред? какой динамический массив с заранее известным инициализатором?
2
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.12.2012, 20:12 #5
Цитата Сообщение от yekka Посмотреть сообщение
и вообще, что за бред? какой динамический массив с заранее известным инициализатором?
Вот тут и оно. Сразу напрашивается std::vector с инициализацией в стиле C++11.
1
daslex
1271 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,706
14.12.2012, 20:18  [ТС] #6
Я понимаю, что вектор напрашивается.
Но меня больше массив интересует.

Я бы сказал, что это не бред, сказал бы моя потребность. Возможно не осуществимая.

Не по теме:

А вообще люди бредили, бредили и полетели в космос

0
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
14.12.2012, 20:23 #7
Цитата Сообщение от daslex Посмотреть сообщение
двумерный динамический массив
в твоем коде, кстати, не двумерный массив, а вполне себе одномерный массив указателей.
0
daslex
1271 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,706
14.12.2012, 20:27  [ТС] #8
Цитата Сообщение от yekka Посмотреть сообщение
одномерный массив указателей.
Не отводите тему. Двумерный динамический массив это одномерный массив указателей на одномерные массивы и есть.

Меня интересует только вопрос, который я спросил
0
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
14.12.2012, 20:34 #9
Цитата Сообщение от daslex Посмотреть сообщение
Двумерный динамический массив это одномерный массив указателей на одномерные массивы и есть.
это не так.


А по теме можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstring>
#include <iostream>
 
using namespace std;
 
const int Etalon[6][6]=
{
    1,2,3,4,5,6,
    7,8,9,8,7,6,
    5,4,3,2,1,0,
    1,2,3,4,5,6,
    7,8,9,0,9,1,
    5,3,1,1,3,4
};
 
int main()
{
    int (*M)[6] = new int[6][6];
    memcpy(M, Etalon, sizeof(Etalon));
    std::cout << M[4][4] << std::endl;
    return 0;
}
Заметьте, с использованием настоящего двумерного массива
0
daslex
1271 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,706
14.12.2012, 20:40  [ТС] #10
Ну и почему я не могу задать n?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
    int n=6;
 
    int (*M)[n] = new int[n][n];
    memcpy(M, Etalon, sizeof(Etalon));
    std::cout << M[4][4] << std::endl;
 
    for (int i=0;i<6;i++)
    {
        for (int j=0;j<N;j++)
        {
          cout<<M[i][j]<<"  ";
        }
        cout<<endl;
    }
    return 0;
}
Вы с динамическим программированием совсем не знакомы?
0
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
14.12.2012, 20:43 #11
Цитата Сообщение от daslex Посмотреть сообщение
Вы с динамическим программированием совсем не знакомы?
боюсь снова Вас разочаровать, но, строго говоря, Ваш вопрос никак не относится к динамическому программированию
0
daslex
1271 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,706
14.12.2012, 20:52  [ТС] #12

Не по теме:

Ваше не знание вас не красит. Я Вам вопрос по вашей программе. Но вы не можете ответить. Зато чего-то доказываете. Глупо.



Ответ на мой изначальный вопрос не получен.

Добавлено через 2 минуты
Показать фокус?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstring>
#include <iostream>
 
using namespace std;
 
 
int main()
{
    const int N=3;
    int M[3][3]=
    {
        0,1,2,
        3,4,5,
        6,7,8
    };
 
    for (int i=0;i<N*N;i++)cout<<M[0][i]<<"  ";
    return 0;
}
Чем ваш тип массивов отличается от одномерного?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2012, 20:52
Привет! Вот еще темы с ответами:

Инициализация динамического массива - C++
Народ, подскажите как сделать так что бы, можно было задать размер массива через консоль, а не в коде через const (Если можете - объясните,...

Инициализация N-мерного динамического массива - C++
Добрый день. Возникла идея написать функцию, которая инициализировала n-мерный динамический массив, что бы не писать кучу вложенных...

Инициализация двумерного массива - C++
Учу С++ и переделываю шахматы в ооп. Не получается написать конструктор для двумерного массива. На С было: int position = { {...

Инициализация двумерного массива - C++
Чет не понимаю на что возмущается компилятор... Заполняю как и заполнял раньше... char my_array; int x = 0; int t = 2; for(; x &lt; 2;...


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

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

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