![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
|
| gets((*p).title); | /* | Ввод названия книги.*/ |
| gets ((*р).author); | /* | Ввод имени автора.*/ |
| (*р).value=123; | /* | Ввод цены книги.*/ |
| gets(p —> title); | /* | Ввод названия книги.*/ |
| gets(p —> author); | /* | Ввод имени автора.*/ |
| p —> value=150; | /* | Ввод цены книги.*/ |
Указатель р содержит адрес начала массива— адрес нулевого элемента массива структур типа book. Используя р, можно осуществить доступ к каждому полю структуры типа book. Чтобы осуществить доступ к другим структурам, необходимо изменить адрес, хранящийся в р. Сдвиг указателя на / элементов массива осуществляется следующим образом:
p=p + i;.
Графическое представление массива структур в памяти ЭВМ показано на рис. 1.12.
Динамическое распределение памяти под массив структур. Динамически распределять память под массив структур необходимо в том случае, когда заранее не известен размер массива.
![]() | ![]() | ||||
![]() | |||||
| float value |
| chartitle[15] |
Адрес начала массива
Название Имя Цена книги автора книги
| Z |
/------------------
char author[15]
" libry[0]
p + 1
char title[15]
char author[15]
T
float value
" libry [1]
P + 2

chartitle[15]
char author[15]
Z
float value
■
bry[2]
p + i
chartitle[15]
z
char auth or[15]
Z
float value
libry [i]
p + 99/
|
chartitle[15]
Последний элемент массива структур
I
char atithor[15]
Z
float value
7\
libry [99]
Рис. 1.12. Массив структур
Пример
#include <stdio.h> #include <alloc.h> struct book
{
char title [30]; char author [30]; float value;
}; main ()
{
struct book *p; int n;
/*n - число структур book*/
printf("\пВведите n:");
| scanf("%u", &n); | |
| p=(struct book *)malloc(n*sizeof( | struct book)); |
| /^Переменная р содержит адрес */ | |
| /^нулевой структуры типа book.*/ |
Дата публикования: 2014-11-04; Прочитано: 282 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!
