6. Глубокие if

3KB
.clang-format
int main(int argc, char *argv[])
{
    if (fopen(argv[1], "r"))
    {
        int size;
        if (fscanf("%d\n", &size) == 1)
        {
            char *arr = malloc(size);
            if (arr != NULL)
            {
                // etc.
            }
            else
            {
                // memory allocation failed
                return 1;
            }
        }
        else
        {
            // cannot open input file
            return 1;
        }
    }
    else
    {
        // cannot open input file
        return 1;
    }
    return 0;
}
Вариант реорганизации и исправления кода
int main(int argc, char *argv[])
{
    if (!fopen(argv[1], "r"))
    {
        // cannot open input file
        return 1;
    }
    int size;
    if (fscanf("%d\n", &size) != 1)
    {
        // cannot open input file
        return 1;
    }
    char *arr = malloc(size);
    if (arr == NULL)
    {
        // memory allocation failed
        return 1;
    }
    // etc.
    return 0;
}

Last updated