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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> многомерный динамический массив 
:(
    Опции темы
Helicopterr
  Дата 31.8.2005, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 3



как можно создать двумерный динамический массив после ввода пользователем его высота/ширина? А затем после инициализации передать его другой функции как параметр?


int determinant(int MASSIVE[][]) // ошибка в этой строке, просит указать размерность массива
{
}


void main()
{ unsigned short height;
unsigned short widht;
cin>>height; cin>>widht; // пользователь вводит размерность массива
int *MASSIVE = new int[height,widht]; // ???

//2 цикла инициализации массива MASSIVE:
for (int ii=0; ii<height; ii++)
{PR "input column ("<<ii+1<<") elemets of MASSIVE:\n";
for (int ij=0; ij<widht; ij++)
{
cin>>MASSIVE[ii][ij];
}}

determinant(MASSIVE); // вызов функции, нужно предать массив
}



--------------------
people can fly
PM MAIL   Вверх
Denn
Дата 31.8.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если размер массива не известен на этапе компиляции - надо использовать динамический массив. Юзай STL vector<> или что-то подобное.
PM MAIL ICQ   Вверх
Void
Дата 31.8.2005, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 40
Всего: 173



Стоило все-таки сперва воспользоваться поиском...

Цитата
Если размер массива не известен на этапе компиляции - надо использовать динамический массив.


Дык, человек и спрашивает, как их создавать, многомерные-то smile

Код

int determinant(int **m, int cols, int rows)
{
...
}

int **m = new int*[rows];
for (int i = 0; i < rows; ++i)
    m[i] = new int[cols];
...
determinant(m, cols, rows);
for (int i = 0; i < rows; ++i)
    delete[] m[i];
delete[] m;


Или использовать std::vector<std::vector<int> >. Или написать простенький класс-обертку (строк на 10).

Это сообщение отредактировал(а) Void - 31.8.2005, 21:55


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
karas
Дата 31.8.2005, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

Код

#include<iostream.h>

int determinant(int **MASSIVE) // îøèáêà â ýòîé ñòðîêå, ïðîñèò óêàçàòü ðàçìåðíîñòü ìàññèâà
{
    return 0;
}


void main()
{ unsigned short height;
unsigned short widht;
cin>>height; cin>>widht; // ïîëüçîâàòåëü ââîäèò ðàçìåðíîñòü ìàññèâà
int **MASSIVE = new int*[height];
for(int i=0;i<height;i++)
MASSIVE[i]=new int[widht]; // ???

//2 öèêëà èíèöèàëèçàöèè ìàññèâà MASSIVE:
for (int ii=0; ii<height; ii++)
{cout<< "input column ("<<ii+1<<") elemets of MASSIVE:\n";
for (int ij=0; ij<widht; ij++)
{
cin>>MASSIVE[ii][ij];
}}

determinant(MASSIVE); // âûçîâ ôóíêöèè, íóæíî ïðåäàòü ìàññèâ
}

PM MAIL   Вверх
Helicopterr
Дата 31.8.2005, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 3



Void
спасибо, что отредактировалsmile
а то я уж хотел чёркатьsmile


--------------------
people can fly
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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