C编程,标识符未定义

Key*_*Key -3 c

请帮帮我,为什么标识符“size3”未定义?

if (size1 > size2)
    {
        int size3 = size1;
    }
    else
    {
        int size3 = size2;
    }

int *array3 = malloc(sizeof(int) * size3);
Run Code Online (Sandbox Code Playgroud)

bul*_*ter 6

您必须在可以访问的范围内声明变量 (size3)。在您的情况下,只需在外部和调用 if 条件之前声明这个 (int size3;)。然后只需分配值。它将解决问题。

int size3 ;
if (size1 > size2)
{
    size3 = size1;
}
else
{
    size3 = size2;
}

int *array3 = malloc(sizeof(int) * size3);
Run Code Online (Sandbox Code Playgroud)