Создание динамических массивов

  • Автор темы efrem
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

efrem

Люди добрые!
Ответьте на мой вопрос:
практическое применение указателей. Определение я знаю, а смысла практического не пойму.

Еще один вопрос:
динамические массивы в С++. Как задать динамический многомерный массив, а количество его строк и столбцов ввести с клавиатуры?
Заранее благодарен.
Алекс
 
K

kagor

Вот небольшой пример создания 2-у мерного массива:

Код:
  int n = 0, m = 0, i = 0;
 cin >> n;
 cin >> m;
 int **matr = new int *[n];
 for (i = 1; i <= n; i++)
   matr[i] = new int [m];
.
.
.
.
 delete [] matr;
 
K

Kernel

во первых
matr = new int [m];
во вторых
при удалении надо удалять не только столбец указателей ... т.е.:
for (i = 1; i <= n; i++)
delete [] matr;
delete [] matr;

А вообще указатели нужны для
А) выделения больших объемов данных по необходимости.
Б) передача их в функции ... Если у нас есть довольно таки массивная структура которую пихать в стек при передаче не очень хочется лучше передать указатель на неё и работать с ним.
 
K

kagor

2 Kernel
во первых
matr = new int [m];
во вторых
при удалении надо удалять не только столбец указателей ... т.е.:
for (i = 1; i <= n; i++)
delete [] matr;
delete [] matr;

Да, я знаю, что надо было написать и
for (i = 1; i <= n; i++)
delete [] matr;
просто не заметил, что этого не написал. А "matr = new int [m];" уже заменил :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!