Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2009, 15:44   #1
vasyapupkin
Пользователь
 
Регистрация: 02.11.2009
Сообщений: 13
Стрелка двумерный динамический массив с запросом к пользователю о кол-ве строк и столбцов?

Подскажите пожалуйста, как можно сделать двумерный динамический массив с запросом к пользователю о кол-ве строк и столбцов??
Знаю что динамический двумерный массив можно создавать
исрользуя
# define N 3
# define M 3
- двухмерный массив 3x3 ,
А как сделать так чтобы был создан массив с размеров , который создал кользователь ??/
vasyapupkin вне форума Ответить с цитированием
Старый 22.11.2009, 17:11   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Судя по define'ам, вы пишете скорее на си. Там вроде бы malloc для таких целей.
В C++ одномерный массив:
Код:
#include <iostream>
int main()
{
int N;
std::cout << "Enter size of array: ";
std::cin >> N;
char* str = new char[N];
//...
delete[] str;
}
Двумерный - по аналогии. Только это должен быть одномерный массив указателей, каждый из которых является указателем на одномерный массив (одномерный массив одномерных массивов). Соответственно, выделять память надо под массив массивов и под каждый одномерный массив. Освобождать память - аналогично.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 22.11.2009, 17:37   #3
vasyapupkin
Пользователь
 
Регистрация: 02.11.2009
Сообщений: 13
По умолчанию Спасибо

Цитата:

{ int n,m;
cout<<"Vvedite 4islo strok: ";
cin>>n;
cout<<"Vvedite 4islo stolbcov: ";
cin>>m;

int **mas = (int**)malloc(n*sizeof(int));
for (int i=0;i<n;i++)
{mas[i]=(int*)malloc(m*sizeof(int)); }

srand((unsigned)time(NULL));
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
mas[i*n + j] = (int*)rand()%1000;

for(int i = 0; i < n; i++)
{ for(int j = 0; j < m; j++)
cout << setw(4) << mas[i*n + j] << " ";
cout << endl;
}
Вот то что я хотел спасибо
Только не могу разобраться
ошибка error C2296: %: недопустимо, левый операнд имеет тип "int *"
в строке "mas[i*n + j] = (int*)rand()%1000;"
vasyapupkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерный динамический массив amandra Общие вопросы Delphi 16 30.07.2013 22:56
Дан двухмерный массив из 20 столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов. Дмитрий142 Помощь студентам 9 07.06.2012 19:32
Двумерный динамический массив IceExecutioner Общие вопросы Delphi 1 04.06.2009 08:41
Двумерный массив, перестановка столбцов с max и min элементами (pascal) Mirk Помощь студентам 2 25.05.2009 20:33