Invalid use of standard library routine

Неправильные аргументы в стандартной функции библиотеки

Описание

Этот дефект возникает, когда вы используете недопустимые аргументы с функцией из стандартной библиотеки. Этот дефект улавливает ошибки, связанные с другими функциями, не охваченными плавающей точкой, целым числом, памятью или строкой стандартными стандартными программами библиотеки.

Риск

Недопустимые аргументы в стандартной функции библиотеки приводят к неопределенному поведению.

Зафиксировать

Исправление зависит от первопричины дефекта. Например, аргумент в printf функцию можно NULL поскольку указатель был инициализирован с помощью NULL и значение инициализации не было перезаписано по определенному пути выполнения.

См. примеры исправлений ниже.

Если вы не хотите устранять проблему, добавьте комментарии к своему результату или коду, чтобы избежать другой проверки. Смотрите Адрес Результаты Polyspace через исправления ошибок или обоснования.

Примеры

расширить все

#include <stdio.h>
#include <stdlib.h>

void print_null(void) {

  printf(NULL); 
}

Функция printf принимает только строковые входные параметры или спецификаторы формата. В этой функции входное значение NULL, которое не является допустимой строкой.

Коррекция - Используйте совместимые входные параметры

Одним из возможных коррекций является изменение входных параметров в соответствии с требованиями стандартной библиотечной стандартной программы. В этом примере входной параметр был изменен на символ.

#include <stdio.h>

void print_null(void) {
    char zero_val = '0';
    printf((const char*)zero_val); 
}

Информация о результатах

Группа: Программирование
Язык: C | C++
По умолчанию: On
Синтаксис командной строки: OTHER_STD_LIB
Влияние: Высокий
ИДЕНТИФИКАТОР CWE : 227, 690
Введенный в R2013b