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

Тема в разделе "Общие вопросы по С и С++", создана пользователем efrem, 23 ноя 2003.

Статус темы:
Закрыта.
  1. efrem

    efrem Гость

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

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

    kagor Гость

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

    Код (Text):
      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;
     
  3. Kernel

    Kernel Гость

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

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

    kagor Гость

    2 Kernel

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

Поделиться этой страницей