Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 10 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
массивов, каждый из которых является строкой матрицы. Адреса всех строк
матрицы образуют отдельный массив указателей, имя которого и является
именем матрицы. Размер этого массива соответствует количеству строк мат-
рицы.
Рис.1.2. Схема расположения элементов матрицы в памяти
На рис.1.2 изображена схема хранения матрицы a размера m x n. Здесь
a имя матрицы, указывающее на первый элемент массива адресов строк,
a[i] (i = 0,…, m-1) – указатель на первый элемент i-ой строки матрицы.
Приведем программный код выделения памяти под матрицу, соответству-
ющий данной схеме.
// выделение памяти под матрицу a размера m x n
// с элементами типа float
float** a=new float*[m]; // выделение памяти под массив
// указателей на первые
// элементы строк
if(a==NULL)
{
printf("Нет требуемого объема памяти.\n");
return;
}
// выделение памяти под каждую строку матрицы
for(i=0;i<m;i++)
10
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова                       .
массивов, каждый из которых является строкой матрицы. Адреса всех строк
матрицы образуют отдельный массив указателей, имя которого и является
именем матрицы. Размер этого массива соответствует количеству строк мат-
рицы.




             Рис.1.2. Схема расположения элементов матрицы в памяти


     На рис.1.2 изображена схема хранения матрицы a размера m x n. Здесь
a – имя матрицы, указывающее на первый элемент массива адресов строк,
a[i] (i = 0,…, m-1) – указатель на первый элемент i-ой строки матрицы.
     Приведем программный код выделения памяти под матрицу, соответству-
ющий данной схеме.

      // выделение памяти под матрицу a размера m x n
      // с элементами типа float
      float** a=new float*[m];    // выделение памяти под массив
                                  // указателей на первые
                                  // элементы строк
      if(a==NULL)
      {
           printf("Нет требуемого объема памяти.\n");
           return;
      }

      // выделение памяти под каждую строку матрицы
      for(i=0;i