По доступу к элементам структуры по адресу или значению - C (СИ)
Формулировка задачи:
В продолжение моей прошлой темы про функцию malloc, создал новую тему, опасаясь, что туда уже никто не заглянет.
Более менее разобрался с этой темой, есть такой рабочий код:
Интересует такой вопрос, какая принципиальная разница здесь при обращении к элементам структуры через -> или . ?
#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);
}Решение задачи: «По доступу к элементам структуры по адресу или значению»
textual
Листинг программы
a->b == (*a).b
Объяснение кода листинга программы
В данном коде сравниваются указатель a и значение, которое он указывает, с переменной b.
a- указатель на структуру или переменнуюb- переменная, содержащая значение, доступ к которому осуществляется по значению или адресу Выполняется проверка на равенство указателяaи значения переменнойb. Результат этой проверки сохраняется в переменной, которая не указана в данном фрагменте кода.