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