Хелпикс

Главная

Контакты

Случайная статья





Пример 10. Инициализация двумерного массива с помощью циклов



Пример 10. Инициализация двумерного массива с помощью циклов

#include <stdio.h>
intmain()
{
inta[2][3]; //Массив из 2 строк и 3 столбцов
inti, j;

//Автоматическое заполнение элементов массива
//Цикл по строкам
for (i = 0; i<2; i++){
// Цикл по столбцам
for(j = 0; j<3; j++){
printf("a[%d][%d] = ", i, j); /*Вывод указания элемента, значение которого требуется*/
scanf("%d", &a[i][j]); //Считывание введённого значения
}
}

//Вывод массива на экран
//Цикл по строкам
for(i = 0; i<2; i++){
//Цикл по столбцам
for(j = 0; j<3; j++){
printf("%d ", a[i][j]); /*Вывод значения элемента массива, находящегося на строке i в столбце j */
}
printf("\n"); //Перевод каретки
}
getchar(); //Задержка вывода
return0;
}

Многомерные массивы. Размерность.

Задание размерности многомерного массива на этапе выполнения программы

int nstr; nstb; cout << " Введите количество строк и столбцов :"; cin >> nstr >> nstb; int **a = new int *[nstr]; // 1 for(int i = 0; i<nstr; i++) // 2 a[i] = new int [nstb]; // 3
  1. объявляется переменная типа «указатель на указатель на int» и выделяется память под массив указателей на строки массива;
  2. организуется цикл для выделения памяти под каждую строку массива;
  3. каждому элементу массива указателей на строки присваивается адрес начала участка памяти, выделенного под строку двумерного массива.

Данный способ выделения памяти является более универсальным и безопасным.

Массивы

Замечания:

    1. Освобождение памяти из-под массива с любым количеством измерений выполняется с помощью операции delete [].
    2. Для правильной интерпретации объявлений полезно запомнить мнемоническое правило: «суффикс привязан крепче префикса».
                • если при описании переменной используются одновременно префикс *(указатель) и суффикс [] (массив), то переменная интерпретируется как массив указателей, а не указатель на массив;
                • int *p[10]; — массив из 10 указателей на int.


  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.