Разрешено ли приводить из структуры к указателю на символ и обратно для целей арифметики указателей c? - PullRequest
1 голос
/ 06 апреля 2020

Рассмотрим следующую структуру:

struct s {
  int a, b;
};

Учитывая указатель на эту структуру, struct s *p, вы можете увеличить указатель, чтобы он указывал на следующую s следующим образом:

struct s *next(struct s *p) {
  return p + 1;
}

Является ли следующий эквивалент и законным:

struct s *nextc(struct s *p) {
  char *pc = (char *)p;
  return (struct s *)(pc + sizeof(struct s));
}

Если для вашего ответа необходимо какое-либо предположение о значении alignof(struct s), укажите это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...