您能解释一下++resultLen * sizeof(float)是什么意思吗?

if (mas[i] > mas[i + 1])
{
    result = (float*)realloc(result, ++resultLen * sizeof(float));
    result[resultLen - 1] = mas[i];
}

最佳答案

运算符sizeof返回您正在执行代码的系统上传入参数类型的大小。通常,浮点数将为4个字节。

运算符++将增加变量。如果将其放在变量后面,则该变量将在其参与的算术运算之后递增。在这里,它放在变量之前,因此在乘法之前递增。

因此,这里您要为“结果”数组重新分配内存空间,将其大小增加1(浮点数)。

08-16 03:01