Основы программирования для автоматизированного проектирования и решения творческих задач. Романенко А.В - 21 стр.

UptoLike

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

Приведем пример использования указателя для связи с динамическим массивом.
П р и м е р 17
int n = 5;
int *Pa = (int *) malloc(n * sizeof(int));
Созданный динамический массив не имеет своего имени, поэтому необходимо запомнить адрес его начала в указателе,
чтобы потом получить возможность использовать его элементы.
Устройство одномерного динамического массива схоже с устройством явно определенного одномерного массива. Од-
нако, устройство многомерных динамических и явно определенных массивов различно.
Рассмотрим устройство многомерного динамического массива на примере двумерного массива. При создании массива
сначала необходимо разместить в памяти одномерный массив, каждый элемент которого указывает на строку, хранящую
данные, а затем создать сами строки для хранения информации. Организация такого массива показана на рис. 7, а создание
массива приведено в примере 18.
Рис. 7 Устройство двумерного динамического массива
П р и м е р 18
int **a, n, m, i;
scanf("%d%d", &n, &m);
a = (int **) malloc(n *sizeof(int *));
for (i = 0 ; i < n; i++) a [i] = (int *) malloc(m *sizeof(int));
Удаление элементов динамического массива производится в порядке, обратном процессу их создания.
П р и м е р 19
for (i = 0 ; i < n; i++) free(a[i]);
free(a);
11.2 Структуры
Структура представляет собой объединение в единую ячейку памяти конечного множества именованных элементов
разного типа. В отличие от массива, где все элементы имеют единое имя, а доступ к ним осуществляется путем уточнения
имени элемента, в структуре каждый элемент обладает уникальным именем, посредством которого осуществляется доступ к
его содержимому. На тип элементов, входящих в структуру, ограничений нет, т.е. в состав структуры могут входить как пе-
ременные простых типов, так и массивы, указатели, структуры и объединения. Элементы структур называют полями.
В языке С определение структурного типа выглядит следующим образом:
struct имя_структурного_типа
{
тип_1 идентификатор_1;
тип_2 идентификатор_2;
...
тип_n идентификатор_n;
} имя_переменной;
При описании структуры возможно пропустить или имя структурного типа или имя переменной. В зависимости от это-
го данная запись будет восприниматься как определение, либо как описание структуры. Имя структурного типа в дальней-
шем может быть использовано для описания переменных. Для этого используется сокращенное имя структуры.
struct имя_структурного_типа имя_1;
Каждая создаваемая структурная переменная содержит свои собственные данные, а их состав определяется структур-
ным типом. Для доступа к элементам конкретной структуры используется уточненное имя, которое в общем виде выглядит
следующим образом:
имя_структуры.имя_элемента;
При определении структуры возможна ее инициализация: