Выполните один или несколько из этих шагов, пока не определите исправление для проверки неинициализированного указателя. Существует несколько способов исправления этой проверки. Описание проверки и примеры кода см. в разделе Non-initialized pointer.
Иногда, особенно для оранжевой проверки, можно определить, что проверка представляет собой не реальную ошибку, а предположение Polyspace ®, которое не соответствует вашему коду. Если для смягчения предположения можно использовать опцию анализа, повторно запустите проверку с помощью этой опции. В противном случае в результат или код можно добавить комментарий и обоснование.
Общий рабочий процесс, применяемый ко всем проверкам, см. в разделе Интерпретация результатов проверки кода в пользовательском интерфейсе Polyspace Desktop.
Выберите флажок на панели Список результатов (Results List). На панели Сведения о результатах (Result Details) получите дополнительные сведения о проверке.

Щелкните правой кнопкой мыши переменную-указатель и выберите «Перейти к определению». Инициализируйте переменную при ее определении. Если инициализация во время определения не требуется, определите подходящую точку для инициализации переменной перед ее прочтением.
Для проверки оранжевого цвета определите, почему указатель не инициализирован на определенных путях выполнения.
Найдите предыдущие экземпляры, в которых операции записи выполняются над указателем.
Для каждой операции записи определите, происходит ли операция:
Перед операцией чтения, содержащей оранжевую неинициализированную проверку указателя.
Возможное исправление: Если операция записи происходит после операции чтения, проверьте, намереваетесь ли вы выполнить операции в обратном порядке.
В недоступном кодовом блоке.
Возможное исправление: Узнайте, почему блок кода недоступен. См. раздел Проверка и устранение недостижимых проверок кода.
В кодовом блоке, который не достигнут на определенных путях выполнения. Например, операция выполняется в if блок в функции. if блок не вводится для определенных функциональных входов.
Возможное исправление: Выполните операцию записи по всем путям выполнения. В предыдущем примере выполните операцию записи во всех ветвях if ... elseif ... else заявление.
В зависимости от характера переменной используйте соответствующий метод для поиска предыдущих операций над переменной. В интерфейсе пользователя Polyspace можно выполнить только следующие действия.
| Переменная | Поиск предыдущих операций с переменной |
|---|---|
Локальная переменная | Используйте один из следующих методов.
|
Глобальная переменная Щелкните правой кнопкой мыши переменную. Если отображается опция Показать в представлении доступа к переменной, переменная является глобальной переменной. |
|
Проверьте, можно ли отследить оранжевый чек по предположению Polyspace, которое встречается ранее в коде. Если предположение не соответствует действительности в вашем случае, добавьте комментарий или обоснование в результат или код. См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.
Отключить проверку можно двумя способами:
Можно отключить проверку только для нелокальных указателей. Polyspace считает, что глобальные переменные указателей инициализируются в NULL в соответствии со стандартами ANSI ® C. Дополнительные сведения см. в разделе Игнорирование инициализации глобальных переменных по умолчанию.
Проверку можно полностью отключить вместе с другими проверками инициализации. Если эта проверка отключена, Polyspace предполагает, что при объявлении указатели могут быть NULL или указывает на блоки памяти с неизвестным смещением. Дополнительные сведения см. в разделе Disable checks for non-initialization (-disable-initialization-checks).