С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/84: Рейтинг темы: голосов - 84, средняя оценка - 4.76
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274

Двумерный динамический массив: как это работает?

16.08.2018, 18:26. Показов 17726. Ответов 90
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вобщем неправильно понимаю суть.
помогите разобраться.

двумерный динамический массив. в определении дается , что это объявление динамического указателя на укзатель. или двойного указателя.

ок. и так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
int i;
for(i=0; i<10; ++i){
int ** array[i]  // создал массив в котором будут находится указатели на динамические массивы.  то есть массив из указателей на указатели.
int j;
j=j+1;
int *dinarray= new int [j]{j}; // cоздал , вернее зарезервировал память для динамического массива и заполнил его. 
 
array[i]=&dinarray; // помещаю адреса динамического одномерного массива в массив созданный для указателей  на эти адреса. то есть беру адрес у динамического массива и помещаю его в массив для адресов. 
}
 
return 0;
 
}
вобщем думаю что это бред. помогите понять где заблудился
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.08.2018, 18:26
Ответы с готовыми решениями:

Пом Динамический - двумерный массив, не работает=(
//--------------------------------------------------------------------------- // Дана целочисленная квадратная матрица. Определить сумму...

Как реализовать двумерный динамический массив?
Доброго дня суток, форумчане! Подскажите пожалуйста, как реализовать двумерный динамический массив?

Как объявить двумерный динамический массив
int *matrix = new int ; че ругается ? а как сделать если без констант надо ?

90
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
03.07.2022, 00:06
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Folian Посмотреть сообщение
Он либо троллирует, либо одно из двух.
Цитата Сообщение от Алексей1153 Посмотреть сообщение
троллинг или просто пьяный ?
Цитата Сообщение от hoggy Посмотреть сообщение
либо он просто неадекват.
Местный сумасшедший?
1
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
03.07.2022, 01:01
Цитата Сообщение от Croessmah Посмотреть сообщение
формулировка "An object is a region of storage." уже убрана из стандарта.
В действующем стандарте Си region of data storage на месте:

https://www.iso.org/obp/ui/#is... :term:3.15

Цитата Сообщение от ISO/IEC 9899:2018(en)
3.14
memory location


either an object of scalar type, or a maximal sequence of adjacent bit-fields all having nonzero width

Note 1 to entry: Two threads of execution can update and access separate memory locations without interfering with each other.

Note 2 to entry: A bit-field and an adjacent non-bit-field member are in separate memory locations. The same applies to two bit-fields, if one is declared inside a nested structure declaration and the other is not, or if the two are separated by a zero-length bit-field declaration, or if they are separated by a non-bit-field member declaration. It is not safe to concurrently update two non-atomic bit-fields in the same structure if all members declared between them are also (nonzero-length) bit-fields, no matter what the sizes of those intervening bit-fields happen to be.

EXAMPLE:
A structure declared as

C
1
2
3
4
5
struct {
 char a;
 int b:5, c:11,:0, d:8;
 struct { int ee:8; } e;
}
contains four separate memory locations: The member a, and bit-fields d and e.ee are each separate memory locations, and can be modified concurrently without interfering with each other. The bit-fields b and c together constitute the fourth memory location. The bit-fields b and c cannot be concurrently modified, but b and a, for example, can be.

3.15
object


region of data storage in the execution environment, the contents of which can represent values

Note 1 to entry: When referenced, an object can be interpreted as having a particular type;
В черновике 9899:202x аналогичное определение тоже есть:
https://www.open-std.org/jtc1/... ction.3.15
0
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
03.07.2022, 02:47  [ТС]
Цитата Сообщение от politoto Посмотреть сообщение
уже убрана из стандарта.
а я об этом и говорил, стандарты меняются. и то, во что еще вчера вы свято верили, на утро может быть уже выкинуто. а еще есть компиляторы. посути будет все так как сделает компилятор, а компилятор сделает так как напишет разработчик а иногда в погоне за наивысшей оптимизацией, разработчики класть хотели на стандартры языка. и мы тут можем долго упрожняться в глупости и спорить что и где будет храниться и тд. но все будет так как сделает компилятор, а компилятор сделает так как его напишет разработчик. а еще кто-то может собрать компилятор из исходников с параметрами сборки известными только ему. и что будет на выходе не известно. но еще раз говорю, что во всей той последовательности действий для получения исполняемого файла сложно отследить как и что случается на самом деле. нельзя вот так тыкать носом в стандарты обвиняя кого-то в тупости не понимая того факта, что компилятор БОСС, и как он сделает на самом деле вы даже можете не узнать.
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
03.07.2022, 03:47
Цитата Сообщение от pcmax Посмотреть сообщение
разработчики класть хотели на стандартры языка.
Разработчики зачастую эти стандарты разрабатывают и улучшают.

А пользоваться компиляторами, которые неизвестно кто неизвестно как написал, неизвестно кто неизвестно как собрал, и которые выдают в результате неизвестно что, никто не заставляет.
Но иногда приходится...

Цитата Сообщение от Stroustrup
1.10 Advice

[1] Don't panic! All will become clear in time;[CG: In.0]
https://isocpp.github.io/CppCo... dont-panic

[3] You don't have to know every detail of C++ to write good programs.

[5] For the final word on language definition issues, see the ISO C++ standard; §16.1.3; [CG: P.2].
https://isocpp.github.io/CppCo... -Cplusplus
https://www.google.ru/books/ed... printsec=2
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,205
03.07.2022, 06:58
Цитата Сообщение от pcmax Посмотреть сообщение
да ничего вы не создали.
Еще раз повторяю: в терминологии языка С++ нет термина "создали" или "не создали". Потрудитесь не замусоривать обсуждение какми-то бессмысленными комбинациями слов.

Цитата Сообщение от pcmax Посмотреть сообщение
это всего лишь своего рода схема того как будет устроен объект,
Совершенно верно. И?

Цитата Сообщение от pcmax Посмотреть сообщение
а совокупность таких объектов составить класс.
А вот это уже полнейшая чушь. Класс - это класс. Никакая "совокупность объектов" никакого отношения к этому не имеет.

Цитата Сообщение от pcmax Посмотреть сообщение
у вас даже память не выделит компилятор пока вы не создадите объект.
Выдели ли память компилятор или не выделит не имеет никакого отношения к рассматриваемому вопросу.

Цитата Сообщение от pcmax Посмотреть сообщение
хорош свистеть ребятушки.
Я думаю, народ, что это просто троллинг.

Цитата Сообщение от pcmax Посмотреть сообщение
разработчики класть хотели на стандартры языка.
... хотя пионэрской бредятины в писанине так много, что кроме как "тупым" этот троллинг никак назвать не получается.
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
03.07.2022, 12:41
Цитата Сообщение от pcmax Посмотреть сообщение
переменная это область памяти, тут все ок. но почему не сказать так просто. зачем называть переменную объектом?
В своей книге A Tour of C++ (Addison-Wesley Professional, 2018 ISBN 0134998030, 9780134998039) Bjarne Stroustrup пишет:
Цитата Сообщение от Stroustrup,2018
1.4 Types, Variables, and Arithmetic

Every name and every expression has a type that determines the operations that may be performed on it.
For example, the declaration
C++
1
int inch
specifies than inch is of type int; that is, inch is an integer variable.

A declaration is a statement that introduces an entity into the program. It specifies a type for the entity:

A type defines a set of possible values and a set of operations (for an object).
An object is some memory that holds a value of some type.
A value is a set of bits interpreted according to a type.
A variable is a named object.
https://books.google.ru/books?... &q&f=false

В учебнике того же автора Programming: Principles and Practice Using C++ (Addison-Wesley Professional, 2014, ISBN 0133796744, 9780133796742)
целая глава называется Objects, Types and Values.

https://books.google.ru/books?... &q&f=false

Цитата Сообщение от Stroustrup,2014
To read something, we need somewhere to read into; that is; we need somewhere in the computer's memory to place what we read.
We call such a "place" an object.
An object is a region of memory with a type that specifies what kind of information can be placed in it.
A named object is called a variable. For example, character strings are put into string variables and integers are put into int variables. You can think of an object as a "box" into which you can put a value of the object's type...
и далее https://books.google.ru/books?... &q&f=false
Цитата Сообщение от Stroustrup,2014
3.2 Variables

...
The "places" in which we store data are called objects. To access an object we need a name. A named object is called a variable and has a specific type (such as int or string) that determines what can be put into the object (e.g., 123 can go into an int and "Hello, World!\n" can go into a string) and which operations can be applied (e.g., we can multiply ints using the * operator and compare strings using the <= operator). The data items we put into variables are called values. A statement that defines a variable is (unsurprisingly) called a definition, and a definition can (and usually should) provide an initial value. Consider:
C++
1
2
string name = "Annemarie";
int number_of_steps = 39;
1
Заблокирован
03.07.2022, 12:58
Цитата Сообщение от politoto Посмотреть сообщение
1.4 Types, Variables, and Arithmetic
politoto, тут уже совсем на пальцах объясняется, и еще человеческим языком .

Но автор темы уверен что ЯП должен быть таким как он представляет, и никак иначе.
Если он другой - значит неправильный.
С таким подходом, увы, далеко не уедешь.
pcmax,
На данный момент есть большое множество ЯП, выбирайте не свой вкус и цвет.

В С++ достаточно сложных концепций, и также достаточно нюансов и тонкостей, с которым при небрежном обращении
получим ошибки (компиляции, исполнения. неопределенное поведение, логические ).
И именно незнание базовых концепций, что есть что, и приводит к этим ошибкам.
Но без этих тонкостей, ЯП теряет свою гибкость и функциональность. Станет более "деревянным".
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
03.07.2022, 13:24
Цитата Сообщение от politoto Посмотреть сообщение
Bjarne Stroustrup пишет
А кто это? Автор очередной книженции "Как выучить С++ за 21 день"?
0
Заблокирован
03.07.2022, 13:38
Цитата Сообщение от Croessmah Посмотреть сообщение
А кто это? Автор очередной книженции "Как выучить С++ за 21 день"?
Близко от далекого : Страуструп, Бьёрн - Википедия
0
 Аватар для Martein
704 / 109 / 21
Регистрация: 22.06.2014
Сообщений: 241
03.07.2022, 14:36
Цитата Сообщение от pcmax Посмотреть сообщение
вы задолбали с объектами что стали переменными, щас вобще тронулись и заявляете что структура может быть классом.
Продолжим же.
В условном операторе
C++
1
if (expr) { }
следующее за ним вычисляемое выражение тоже является объектом, главное чтобы объект умел преобразовываться к булеву типу. Преобразование классов к другим классам, в том числе и к булеву типу говорит о том, что и булев тип -- это частный случай класса. В итоге вот тебе накидываю: истина или ложь -- это тоже объекты, то есть экземпляры булева класса.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class car {
public:
    car(bool) {}
    operator bool() { return true; }
};
 
int main()
{
    car jiguli = false;
    if (jiguli) {
        std::cout << "Hello, world!";
    }
    return 0;
}
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
03.07.2022, 23:55
Цитата Сообщение от SmallEvil Посмотреть сообщение
на пальцах объясняется, и еще человеческим языком
и с картинками

https://books.google.ru/books?... &q&f=false
Миниатюры
Двумерный динамический массив: как это работает?   Двумерный динамический массив: как это работает?   Двумерный динамический массив: как это работает?  

Двумерный динамический массив: как это работает?   Двумерный динамический массив: как это работает?  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.07.2022, 23:55
Помогаю со студенческими работами здесь

Как заполнить двумерный динамический массив?
вот я создал двумерный динамический массив (правильно надеюсь): int row=2; for (int i=0; i&lt;dl; i++){if ('!'==str){row+=1;}}; int...

Как перезаписать двумерный динамический массив?
Здравствуйте! Проблема в том, что при перезаписи массива с большой разницей в строках и столбцах функция работает не правильно. В чем может...

Как создать динамический двумерный массив
Можно ли создать на С++ динамический двухмерный масив? Как? int z , x ; cin &gt;&gt; z ; cin &gt;&gt; x ; int *arr = new int(z); int...

Как заполнить двумерный динамический массив?
Кто может объяснить , как создать динамический двумерный массив и записать в него элементы из файла, при этом подсчитав количество строк и...

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


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

Или воспользуйтесь поиском по форуму:
91
Ответ Создать тему
Новые блоги и статьи
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