Non-initialized variable

Переменная кроме локальной переменной не инициализируется прежде чем быть считанным

Описание

Эта проверка происходит, когда вы читаете переменные, которые не локальны (глобальные или статические переменные). Это определяет, инициализируется ли считанная переменная.

По умолчанию Polyspace® полагает, что глобальные переменные инициализируются. Верификация проверяет глобальные переменные, только если вы предотвращаете эту инициализацию по умолчанию. См. также Инициализацию Глобальных переменных.

Для большего количества примеров инициализации сложных типов данных смотрите эквивалентное средство проверки для локальных переменных, Non-initialized local variable.

Примеры

развернуть все

int globVar;
int getVal();

void main() {
 int val = getVal();
 if(val>=0 && val<= 100)
   globVar += val;
}

В этом примере, globVar не имеет начального значения, когда постепенно увеличено. Поэтому проверка Non-initialized variable производит красную ошибку.

Пример использует опцию, чтобы предотвратить инициализацию по умолчанию глобальных переменных.

Коррекция — Инициализирует глобальную переменную перед использованием

Одна возможная коррекция должна инициализировать глобальную переменную globVar перед использованием.

int globVar;
int getVal();

void main() {
 int val = getVal();
 globVar = 0;
 if(val>=0 && val<= 100)
   globVar += val;
}

Проверяйте информацию

Группа: Поток данных
Язык: C | C++
Акроним: NIV