Переменный спецификатор потерян во время преобразования
Этот дефект происходит во время преобразования указателя, когда один указатель имеет спецификатор, и другой не делает. Например, при преобразовании от const int* к int*, преобразование удаляет const спецификатор.
Этот дефект применяется только для проектов в C.
Спецификаторы, такие как const или volatile в объявлении указателя:
const int* ptr;
const или volatile. Эти спецификаторы действуют как инструкции к компилятору. Например, const объект, как предполагается, не изменяется в коде и volatile объект, как предполагается, не оптимизирован далеко компилятором.Если второй указатель указывает на тот же объект, но не использует тот же спецификатор, спецификатор на первом указателе больше не действителен. Например, если const int* указатель и int* точка указателя к тому же объекту, можно изменить объект через второй указатель и нарушить контракт, подразумеваемый const спецификатор в первом указателе.
Если вы намереваетесь преобразовать от одного указателя до другого, объявите оба указателя с теми же спецификаторами.
| Группа: Программирование |
| Язык: C |
| Значение по умолчанию: Off |
Синтаксис командной строки: QUALIFIER_MISMATCH |
| Удар: низко |
| ID CWE: 704 |