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