Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамическое создание массива, двухмерного 
:(
    Опции темы
ZAVS
Дата 26.1.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



Привет

Как можно в C динамически создать двухменый массив??
Именно двухмерный массив а не одномерный массив указателей на одномерные массивы.

--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
BreakPointMAN
Дата 26.1.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 14
Всего: 24



Никак. Двумерный массив это массив массивов, т.е. массив указателей на одномерные массивы.


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
JackYF
Дата 27.1.2006, 03:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Создай одномерный массив размером M*N,
а обращение к элементу [i][j] будет
выглядеть так:
a[i*N+j]

типа того.

а вообще двумерный массив - это действительно массив массивов.



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
threef
Дата 27.1.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

Репутация: 9
Всего: 10



Код


#define linesize 3000

typedef double vector[linesize];

vector *matrix=new vector[rowcount];


Правда, длина строк будет фиксирована

Еще вариант

Код


struct matrix{
    double *data;
                 int size;
                 int M,N,CURRENT_ROW,CURRENT_COL;
           
    struct line{
          matrix* owner;
          public:
          double& operator [](int row)
          {
              owner->CURRENT_ROW=row;
              return *(owner->data+owner->CURRENT_ROW*owner->N+owner->CURRENT_COL);
          }
    } redirector;
    matrix(int m,int n):
    M(m),N(n),size(m*n),CURRENT_ROW(1),CURRENT_COL(1)
                {
                     data=new double[size];
                     redirector.owner=this;
                }
    line& operator[](int col)
    {
        CURRENT_COL=col;
        return redirector;
    }   
 
    ~matrix(){delete []data;};
}


Тут длина строк не фиксирована, но это C++

PM MAIL   Вверх
pablo
Дата 27.1.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Вот тута ещё несколько предложений по поводу многомерного массива




--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
BreakPointMAN
Дата 27.1.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 14
Всего: 24





--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.