Здравствуйте, уважаемые эксперты.
Как можно создать двумерный массив mxn, если его размеры (числа m и n) заранее неизвестны? Я пробовал таким образом (см. приложение). Подскажите, также, что я там сделал не так или это вообще не имеет смысла?
Приложение:
Отправлен: 12.02.2005, 00:37
Вопрос задал: Александр Николаевич (статус: Читатель)
Всего ответов отправлено: 5
Отвечает: vitya
Здравствуйте, Александр Николаевич!
Так и надо создавать. Сначала int ** p = new int*[m]; потом в цикле, для каждого p[i] создавать new int[n].
Ответ отправил: vitya (статус: Профессор)
Отправлен: 12.02.2005, 13:15
Отвечает: Федин А.В.
Здравствуйте, Александр Николаевич!
int** mas = new int*;
for(int i = 0; i < N; i++)
{
mas[i] = new int[M];
for(int j = 0; j < M; j++)
{
mas[i][j] = i+j;
printf("%d, ", mas[i][j]);
}
puts("");
}
Ответ отправил: Федин А.В. (статус: 2-ой класс)
Отправлен: 12.02.2005, 13:27
Отвечает: Захаров Игорь Игоревич
Здравствуйте, Александр Николаевич!<br> При создании динамического двумерного масива типа int надо делать так:<p><h6>* EMan 2 beta: back in Black :)</h6>
Приложение:
Ответ отправил: Захаров Игорь Игоревич (статус: 1-ый класс)
Отправлен: 12.02.2005, 16:44
Отвечает: AxMAD
Здравствуйте, Александр Николаевич!
Ну вообще ваша идея правильна только нужно:
int *k;
k=new int[m*n]
Ответ отправил: AxMAD (статус: Студент)
Отправлен: 12.02.2005, 17:20
Отвечает: Voituk Alexander
Здравствуйте, Александр Николаевич!
Двухмерный массив создается так :
//создаем строку
int **sss = new (int *)[m];
//а теперь создаем столбцы
for(int i = 0;i < m;i++)
sss[i] = new (int *)[n];
Удалять его нужно так же - сначала столбцы, а потом строку.
Ответ отправил: Voituk Alexander (статус: 2-ой класс)
Отправлен: 15.02.2005, 12:47