![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Я неправильно выразился. Вычисляется прибавлением смещения к базовому адресу, а базовый уже получается либо в стеке либо в куче - все равно. Просто при статическом объявлении массив сразу залезает в единый блок памяти. На примере двухмерных массивов: Мнение, что адрес элемента массива вычисляется как БАЗА + Размерность1*Индекс1+размерность 2 правильное только в отношении статических массивов. Для динамических адрес элемента = Указатель[Индекс1]+Индекс2 |
|||
|
||||
| archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
а че ты мне это говоришь? я этого не утверждал... перечитай мой пост... там везде акцент на слово храниться в кавычках....
это ты так делаешь...это уже массив указателей... если же оставить обыкновенный двухмерный массив, то абсолютно ничего не изменится (кроме того, что адрес массива теперь будет лежать в определённой переменной):
Добавлено @ 22:22 для статических тоже:
Это сообщение отредактировал(а) archimed7592 - 18.4.2007, 22:24 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
нет, прав! то что в памяти он лежит линейно, ни о чем не говорит, двумерный массив, это массив, в котором каждый элемент является массивом, и не спорь пожалуйста, это голая теория и с ней спорить не надо. То что в дампе это выглядит иначе это другой разговор, а сейчас разговор о другом. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
||||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
ну я ж тебе показал... могу ещё раз:
суть то не в этом суть в том, что двумерный массив, вне зависимости от его месторасположения (automatic/static/dynamic storage duration), передают в ф-цию одинакового... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Спасибо братки) Поддержали
Это сообщение отредактировал(а) HappyLife - 19.4.2007, 09:21 |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Упс. Чего то я не понял. Это же не динамический двумерный массив. Это получится динамический массив массив из 5 фиксированных элементов - по сути одномерный, если рассматривать массив из 5 элементов как отдельный тип данных. А каким образом вы создадите динамически двумерный массив, где оба измерения динамические? Это естественно. Главное знать границы |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ну раз теория, тогда каждый элемент в двумерном массиве является просто элементом определенного типа, а не массивом как сказал ты, это раз во-вторых массив - понятие обобщенное, одномерный, двумерный и т.д массивы - частные случаи массива как линейной последовательности элементов, на которой можно задать функции вида F(i): X -> Y(i), где i - количество индексов, X - исходная последовательность, Y - функция от количества индексов в массиве т. е F(2) = X -> Y(2) (каждому элементу из X поставим в соответствие элемент из Y(2) = {a1 * N2 + a2}, где N2 - вторая размерность массива, a1, a2 - индексы), аналогично, F(3) = X -> Y(3) (Y(3) = {a1 * N3 + a2 * N2 + a3}), продолжая, получим Y(i) = {a1 * Ni + a2 * Ni-1 + ... + ai} -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| betal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 26.12.2006 Репутация: нет Всего: 1 |
Он располагается в физической памяти как одномерный массив. Ибо по другому он не умеет. Суть только в адресах. И в адресах которые хранят указатель на другие адреса. Дабы правильно увидеть это представляй его в виде таблици или куба. --------------------
101100010100001101100001110100101111011легкие деньги |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Что-то на счет теории я недопониаю. Существует отдельная теория о массивах?
Например в языке Бейсик прямо в описании языка говорилось, что двумерный массив представляет собой большой одномерный. А в описании Си говорится, что многомерный массив - это массив массивов и совсем необязательно, что он занимает единый блок памяти. Тут речь идет не о теории, а о конкретной реализации способа хранения многомерных массивов. В языке Си их по сути 2. Но смысл массива от этого не меняется. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
вот и славненько ты наверное забыл с чего всё началось -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| betal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 26.12.2006 Репутация: нет Всего: 1 |
Начнем с того в чем разница между переменной и массивом ?!?
В том что массив хранит в себе массив переменных одного типа. Что-то тип того по имени мы получаем доступ к началу (адресу) первого элемента массива. А номер уже указывает на адресс массива + его порядковый номер в этом массиве --------------------
101100010100001101100001110100101111011легкие деньги |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
второй, это надо понимать массив указателей? тогда, имхо, смысл меняется, хоть и работа с ним выглядит также(но не всегда - передача в ф-цию к примеру)
Добавлено через 1 минуту и 21 секунду массив - это тип... абстракция... переменная - сущность... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 3 Всего: 8 |
Давайте закончим сыр бор на пустом месте.
Ведь достаточно открыть Страуструп 3 издание, приложение B раздел 7. Где все это описано. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |