Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Описание массива


Автор: chaos 21.12.2004, 12:48
Подскажите как описать двумерный массив в динамической памяти?(не помню)
Одномерный описывается так

Код

char *mas = new char[30];
.......
delete[] mas;


а как описать двумерный массив через new?

Автор: bel_nikita 21.12.2004, 12:51
Код
char **mas;

Автор: chaos 21.12.2004, 12:58
Цитата(bel_nikita @ 21.12.2004, 12:51)
Код
char **mas;

и как с ним потом работать?

Автор: Mad 21.12.2004, 13:06
Цитата(bel_nikita @ 21.12.2004, 11:51)
char **mas;

Цитата(chaos @ 21.12.2004, 11:58)
и как с ним потом работать?

Код

int mx = 30;
int my = 30;
char *mas = new char[mx*my];

char c = mas[10*my+5]; // доступ к элементу mas[5][10]

Автор: azesmcar 21.12.2004, 13:08
Можно вот так...
Код

char **tt = &(new char[100]); //Получается массив 10x10
tt[1][5] = 'a';
printf("%c", tt[1][5]);


Автор: chaos 21.12.2004, 13:08
Цитата(Mad @ 21.12.2004, 13:06)
Цитата(bel_nikita @ 21.12.2004, 11:51)
char **mas;

Цитата(chaos @ 21.12.2004, 11:58)
и как с ним потом работать?

Код

int mx = 30;
int my = 30;
char *mas = new char[mx*my];

char c = mas[10*my+5]; // доступ к элементу mas[5][10]

char c = mas[10*my+5];
это понятно а что бы так mas[a][b]?
Добавлено @ 13:09
Цитата(azesmcar @ 21.12.2004, 13:08)
Можно вот так...
Код

char **tt = &(new char[100]); //Получается массив 10x10
tt[1][5] = 'a';
printf("%c", tt[1][5]);

спасибо
Добавлено @ 13:13
блин чето перестало работать smile

Автор: bel_nikita 21.12.2004, 13:23
массив [30][20];
Код

 char **mas = new char*[30];

 mas[0] = new char [20];
 mas[1] = new char [20];

...
 mas[0][1] = 'a';
...

 delete mas[0];
 delete mas[1];
...
 delete[] mas;

Автор: azesmcar 21.12.2004, 13:24
Что именно? вылетает???
Добавлено @ 13:33
Ой извиняюсь, код неправильный...так он инициализирует только первый указател...
будет работать для tt[0][x]
bel_nikita
Цитата

char **mas = new char*[30];

mas[0] = new char [20];
mas[1] = new char [20];

...
mas[0][1] = 'a';
...

delete mas[0];
delete mas[1];
...
delete[] mas;


Так надо..

Автор: chaos 21.12.2004, 18:11
спасибо за помощь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)