С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
12 / 12 / 6
Регистрация: 03.10.2012
Сообщений: 83

Как создать динамический двумерный массив

07.11.2013, 21:22. Показов 3643. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли создать на С++ динамический двухмерный масив? Как?
C++
1
2
3
4
5
int z , x ;
cin >> z ;
cin >> x ;
int *arr = new int(z);
int *arr1 = new int(x);
так не получаеться!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.11.2013, 21:22
Ответы с готовыми решениями:

Как создать двумерный динамический массив
Помогите, пожалуйста, в таком вопросе: нужно создать динамический двумерный массив. Да он еще должен быть такой, чтоб длина строк была...

Как создать динамический двумерный массив
Динамический одномерный массив p можно сождать примерно так: int N, *p; cin >> N; p= new int А как создать динамический...

Как создать двумерный динамический массив (принцип лото)?
Как создать двумерный динамический массив (принцип лото). "Таблица" состоит из 9 столбцов и 3 строк. Из них 15 заполнены цифрами от 1 до...

7
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
07.11.2013, 21:25
создаешь указатель на массив указателей, т.е. массив который будет хранить адреса первых элементов других массивов, примерно так:

C++
1
2
3
4
5
6
7
8
9
int **b=new int*[m];
 
for (int i =0;i<m;i++)
{
int a*=new int[n];
for (int j=0;j<n;j++)
a[j]=rand();
b[i]=&a[0];
}
1
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
07.11.2013, 23:30
Народ помогите написать программу.
Задание такое:

Определить сумму элементов, расположенных на главной диагонали
матрицы, и произведение элементов, расположенных на побочной диагонали
матрицы.

Заранее сильно благодарен.
0
1 / 1 / 0
Регистрация: 07.11.2013
Сообщений: 13
07.11.2013, 23:57
Смотри, все довольно просто. Тебе нужно сначала создать указатель на двумерный массив. Потом выделить память для строк, а потом выделить память для всех элементов строк, т.е для всех столбцов. И не забывай освобождать память. Это тебе не c# где есть отличный сборщик мусора. Если не будешь освобождать память то в скором времени тебе придется перезагрузить комп. Вот пример кода

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
// N - это количество строк  M - это количество столбцов
int **a; // делаем указать на двумерный массив
a = new int*[N]; // инициализируем строки
for(int i=0;i<M;i++) 
        a[i] = new int[M]; // инициализируем столбцы
// теперь заполним массив
for(int i = 0 ; i<N; i++)
{
    for(int j = 0; j<M; j++)
    {
         a[i][j] = 1; // весь массив будет заполнен единицами, обязательно нужно чем то заполнить, так как если 
                        // обратиться к элементу массива который не заполнен, то прога вылетит 
    }
}
 
// теперь можно вывести все элементы на экран
for(int i = 0 ; i<N; i++)
{
    for(int j = 0; j<M; j++)
    {
         cout<<a[i][j]<<"  ";
    }
    cout<<endl; // endl переносит каретку на другую строку (проще говоря перенос строки), можно еще записать как "\n"  
}
 
// теперь нужно удалить все из памяти
for (int i=0;i<M;i++) delete [] a[i]; // сначала удалим все столбцы
delete [] a; // а теперь все строки
// готово...есть еще несколько способов реализации, но это нужно вспоминть
0
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
08.11.2013, 00:16
Не знаю но прога у меня не пашет чета. Можешь по подробней

Добавлено через 2 минуты
Цитата Сообщение от Andrey027 Посмотреть сообщение
Не знаю но прога у меня не пашет чета. Можешь по подробней
или хотя бы полный код скинуть
0
1 / 1 / 0
Регистрация: 07.11.2013
Сообщений: 13
08.11.2013, 00:17
Цитата Сообщение от Andrey027 Посмотреть сообщение
Не знаю но прога у меня не пашет чета. Можешь по подробней
Ну ты весь код в main добавь. Вообще это пример для вижуалки, в ней уверен что работать будет. А в других возможно что то над поменять.

Пиши конкретнее что не пашет....Что компилятор говорит?
0
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
08.11.2013, 00:19
1>------ Построение начато: проект: 64, Конфигурация: Debug Win32 ------
1>Построение начато 07.11.2013 23:18:42.
1>InitializeBuildStatus:
1> Обращение к "Debug\64.unsuccessfulbuild".
1>ClCompile:
1> 64.cpp
1>c:\users\cazhushko\desktop\64\64\64.cp p(8): error C2144: синтаксическая ошибка: перед "int" требуется ";"
1>c:\users\cazhushko\desktop\64\64\64.cp p(9): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\cazhushko\desktop\64\64\64.cp p(9): error C2040: a: "int" отличается по уровням косвенного обращения от "int **"
1>c:\users\cazhushko\desktop\64\64\64.cp p(9): error C2065: N: необъявленный идентификатор
1>c:\users\cazhushko\desktop\64\64\64.cp p(9): error C2440: инициализация: невозможно преобразовать "int **" в "int"
1> Не существует контекста, в котором такое преобразование возможно
1>c:\users\cazhushko\desktop\64\64\64.cp p(10): error C2059: синтаксическая ошибка: for
1>c:\users\cazhushko\desktop\64\64\64.cp p(10): error C2143: синтаксическая ошибка: отсутствие ")" перед ";"
1>c:\users\cazhushko\desktop\64\64\64.cp p(10): error C2143: синтаксическая ошибка: отсутствие ";" перед "<"
1>c:\users\cazhushko\desktop\64\64\64.cp p(10): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\cazhushko\desktop\64\64\64.cp p(10): error C2143: синтаксическая ошибка: отсутствие ";" перед "++"
1>c:\users\cazhushko\desktop\64\64\64.cp p(10): error C2086: int i: переопределение
1> c:\users\cazhushko\desktop\64\64\64.cpp( 10): см. объявление "i"
1>c:\users\cazhushko\desktop\64\64\64.cp p(10): error C2059: синтаксическая ошибка: )
1>c:\users\cazhushko\desktop\64\64\64.cp p(13): error C2059: синтаксическая ошибка: for
1>c:\users\cazhushko\desktop\64\64\64.cp p(13): error C2143: синтаксическая ошибка: отсутствие ")" перед ";"
1>c:\users\cazhushko\desktop\64\64\64.cp p(13): error C2143: синтаксическая ошибка: отсутствие ";" перед "<"
1>c:\users\cazhushko\desktop\64\64\64.cp p(13): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\cazhushko\desktop\64\64\64.cp p(13): error C2086: int i: переопределение
1> c:\users\cazhushko\desktop\64\64\64.cpp( 10): см. объявление "i"
1>c:\users\cazhushko\desktop\64\64\64.cp p(13): error C2143: синтаксическая ошибка: отсутствие ";" перед "++"
1> c:\users\cazhushko\desktop\64\64\64.cpp( 10): см. объявление "i"
1>c:\users\cazhushko\desktop\64\64\64.cp p(13): error C2059: синтаксическая ошибка: )
1>c:\users\cazhushko\desktop\64\64\64.cp p(14): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\users\cazhushko\desktop\64\64\64.cp p(14): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\users\cazhushko\desktop\64\64\64.cp p(23): error C2059: синтаксическая ошибка: for
1>c:\users\cazhushko\desktop\64\64\64.cp p(23): error C2143: синтаксическая ошибка: отсутствие ")" перед ";"
1>c:\users\cazhushko\desktop\64\64\64.cp p(23): error C2143: синтаксическая ошибка: отсутствие ";" перед "<"
1>c:\users\cazhushko\desktop\64\64\64.cp p(23): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\cazhushko\desktop\64\64\64.cp p(23): error C2086: int i: переопределение
1> c:\users\cazhushko\desktop\64\64\64.cpp( 10): см. объявление "i"
1>c:\users\cazhushko\desktop\64\64\64.cp p(23): error C2143: синтаксическая ошибка: отсутствие ";" перед "++"
1> c:\users\cazhushko\desktop\64\64\64.cpp( 10): см. объявление "i"
1>c:\users\cazhushko\desktop\64\64\64.cp p(23): error C2059: синтаксическая ошибка: )
1>c:\users\cazhushko\desktop\64\64\64.cp p(24): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\users\cazhushko\desktop\64\64\64.cp p(24): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\users\cazhushko\desktop\64\64\64.cp p(33): error C2059: синтаксическая ошибка: for
1>c:\users\cazhushko\desktop\64\64\64.cp p(33): error C2143: синтаксическая ошибка: отсутствие ")" перед ";"
1>c:\users\cazhushko\desktop\64\64\64.cp p(33): error C2143: синтаксическая ошибка: отсутствие ";" перед "<"
1>c:\users\cazhushko\desktop\64\64\64.cp p(33): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\cazhushko\desktop\64\64\64.cp p(33): error C2086: int i: переопределение
1> c:\users\cazhushko\desktop\64\64\64.cpp( 10): см. объявление "i"
1>c:\users\cazhushko\desktop\64\64\64.cp p(33): error C2143: синтаксическая ошибка: отсутствие ";" перед "++"
1> c:\users\cazhushko\desktop\64\64\64.cpp( 10): см. объявление "i"
1>c:\users\cazhushko\desktop\64\64\64.cp p(33): error C2059: синтаксическая ошибка: )
1>c:\users\cazhushko\desktop\64\64\64.cp p(34): error C2059: синтаксическая ошибка: delete
1>c:\users\cazhushko\desktop\64\64\64.cp p(36): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>
1>Сбой построения.
1>
1>Затраченное время: 00:00:00.29
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
1 / 1 / 0
Регистрация: 07.11.2013
Сообщений: 13
08.11.2013, 00:21
Цитата Сообщение от Andrey027 Посмотреть сообщение
Не знаю но прога у меня не пашет чета. Можешь по подробней

Добавлено через 2 минуты


или хотя бы полный код скинуть
Код который я скинул не для тебя Andrey, а для автора темы. Вот и не работает) Создай новую тему, а то не хорошо и не удобно разбираться с вопросом не по теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.11.2013, 00:21
Помогаю со студенческими работами здесь

Как создать двумерный динамический массив не зная его размеров?
Привет. Не смог найти в гугле как можно создать двумерный динамический массив не зная его длины вообще. Нашел только создание...

Как создать динамический двумерный массив с использованием функции malloc?
Я создаю динамический двумерный массив вот так: int **arr = (int**)malloc(m*sizeof(int*)); //объявление матрицы на экран ...

Возможно ли создать двумерный динамический массив?
существует ли возможность создать двумерный динамический массив, к примеру 2х5 ?

Создать двумерный динамический массив char
Нужно сделать динамический двумерный массив типа char , Надо чтобы было только через char вот так: qwerty root Linux ...

Создать двумерный динамический массив типа String
Мне нужно создать динамический массив типа string с заранее неизвестной размерностью, которая вводится при запуске программы. После чего...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru