Преобразования не должны выполняться между указателем на неполный тип и любым другим типом
Преобразования не должны выполняться между указателем на неполный тип и любым другим типом.
Неполный тип является типом, который не содержит достаточную информацию, чтобы определить ее размер. Например, оператор struct s; описывает неполный тип потому что поля s не заданы. Размер переменной типа s не может быть определен.
Преобразования в или от указателя до неполного типа приводят к неопределенному поведению. Как правило, указатель на неполный тип используется, чтобы скрыть полное представление объекта. Эта инкапсуляция повреждается, если другой указатель неявно или явным образом брошен к такому указателю.
Преобразования не должны выполняться между указателем на неполный тип и любым другим типом.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
| Группа: преобразования типа указателя |
| Категория: необходимый |
| Категория AGC: необходимый |
| Язык: C90, C99 |