# V627. Argument of sizeof() is a macro, which expands to a number. Consider inspecting the expression.

Анализатор обнаружил потенциально возможную ошибку, связанную с тем, что аргументом оператор 'sizeof' является макрос, раскрывающийся в число. Такое использование оператора может привести к выделению некорректного размера памяти и иным ошибкам.

Рассмотрим пример:

    #define NPOINT 100
    ...
    char *point = (char *)malloc(sizeof(NPOINT));

В результате выполнения данного кода будет выделен недостаточный объем памяти. Корректный вариант кода:

    #define NPOINT 100
    ...
    char *point = (char *)malloc(NPOINT);

Данная диагностика классифицируется как:

CWE-682

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V627.