Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
fortythousand
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 21
1

По доступу к элементам структуры по адресу или значению

29.01.2015, 20:21. Просмотров 849. Ответов 3
Метки нет (Все метки)

В продолжение моей прошлой темы про функцию malloc, создал новую тему, опасаясь, что туда уже никто не заглянет.
Более менее разобрался с этой темой, есть такой рабочий код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
typedef struct
{
    char last_name[32];
    int grade[3];
}student;
 
int main()
{
student *group = malloc(sizeof (student) * 20);
 
strcpy(group->last_name, "Kim");
group->grade[0] = 5; group->grade[1] = 4; group->grade[2] = 3;
strcpy(group[1].last_name, "Petya");
group[1].grade[0] = 3; group[1].grade[1] = 4; group[1].grade[2] = 3;
printf("%s\n",group[1].last_name);
}
Интересует такой вопрос, какая принципиальная разница здесь при обращении к элементам структуры через -> или . ?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2015, 20:21
Ответы с готовыми решениями:

Доступ к адресу элемента структуры
Здравствуйте, встал вопрос по поводу структур. Как получить адресс элемента...

Обращения к элементам структуры
Уважаемые вот собственно код #include &lt;windows.h&gt; #include &lt;stdio.h&gt;...

Ошибка присвоения значений элементам структуры
int main() { typedef struct { int a; int b; }Twelve; Twelve.a = 5;

Ошибка присвоения значений элементам структуры
Пишу на СИ под ARM проц. Не могу понять в чем ошибка. file.h: struct...

Разбивка текстового файла по элементам структуры
Народ, дали задание: &quot;Нужно заполнить структуры из файла, данные в файле...

3
Jewbacabra
Эксперт PHP
3752 / 3096 / 1363
Регистрация: 24.04.2014
Сообщений: 9,403
29.01.2015, 21:28 2
Лучший ответ Сообщение было отмечено fortythousand как решение

Решение

C
1
a->b == (*a).b
1
fortythousand
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 21
30.01.2015, 08:00  [ТС] 3
Точно, теперь понял, спасибо, т.е. тут получается значение group[1] - это значение указателя (как *a), т.е. вторая структура типа student, и к ней уже применяется точка.
0
Jewbacabra
Эксперт PHP
3752 / 3096 / 1363
Регистрация: 24.04.2014
Сообщений: 9,403
30.01.2015, 08:39 4
Цитата Сообщение от fortythousand Посмотреть сообщение
значение group[1] - это значение указателя (как *a)
group[1] это *(group+1)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2015, 08:39

Segmentation fault. Присвоение значений элементам структуры
Компилируется как надо. На винде падает после запуска, на линуксе после запуска...

Обращение по адресу к элементам структуры
Есть структура fs: struct fs { f_element; s_element; ......

Динамический массив. Как лучше обращатся к элементу: по адресу или по значению?
Собственно, как лучше. Так: int i, j, len; char *text = new char; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru