Рассмотрим следующую структуру:
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)
, укажите это.