Операторы +, -, + = и - = не должны применяться к выражению типа указателя
Операторы +, -, + = и - = не должны применяться к выражению типа указателя.
Предпочтительной формой арифметики указателя является использование синтаксиса индекса массива ptr[expr]. Этот синтаксис ясен и менее подвержен ошибкам, чем манипуляции с указателем. При манипуляции указателем любое явно вычисленное значение указателя может получить доступ к непреднамеренным или недопустимым адресам памяти. Индексация массивов также может получить доступ к непреднамеренной или недопустимой памяти, но ее легче просмотреть.
Новому программисту на C выражение ptr+1 может быть ошибочно истолкован как один плюс адрес ptr. Однако новый адрес памяти зависит от размера, в байтах, цели указателя. Эта путаница может привести к неожиданному поведению.
При использовании с осторожностью, манипуляция указателями с помощью ++ может быть более естественным (для образца, последовательно получая доступ к местоположениям во время тестирования памяти).
Polyspace® операции флагов для указателей, например Pointer + Integer, Integer + Pointer, Pointer - Integer.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
| Группа: указатели и массивы |
| Категория: Консультационные |
| Категория СМЖЛ: Консультационная |