Использование указателей в программах на языках С/С++/С# . Васильев В.Г. - 20 стр.

UptoLike

Составители: 

int main(int argc, char* argv[])
{
int n,m;
n =10; m=10;
float ** Matrix = Get_mem ( n, m); // Выделяем память под двумерный массив //
10*10
for ( int i =0; i < n ; i ++) // строим единичную матрицу- на главной
диагонали, которой - единицы
for ( int j =0; j < m ; j ++)
if ( i == j ) Matrix [i][j]= 1.0;
print_matrix (Matrix, n, m, "%3.1f ");
Del_mem (Matrix,n); // Возвращаем память ОС
getch ();
return 0;
}
// Выделяем память для матрицы в n строк и m – столбцов
float ** Get_mem ( int n, int m )
{
float ** buffer;
buffer = new float *[n]; // выделяем память под массив из n элементов.
Этот //массив будет хранить адреса строк (массивов) матрицы. Поэтому в
операторе //new тип данных float *(адреса данных типа float). Адрес данного
массива записываем в переменную buffer, смысл которой - адрес адресов
(массив указателей).
for ( int i =0; i < n ; i ++) // выделяем память n –раз под массивы из m
//элементов - строки матрицы
buffer[i] = new float [m];
// Обнуляем матрицу
for ( int i =0; i < n ; i ++)
for ( int j =0; j < m ; j ++)
buffer[i][j] = 0.0;
return buffer; // возвращаем адрес массива указателей
}
// возвращаем память OS
20