我只是在做一个修订任务,并且遇到了参数太少而无法运行的错误,所以我做了一些研究,显然可以将 NULL 用于未使用的语句。但是,当我运行我的程序时,所有发生的都是提示用户输入 3 个值然后它结束。它不执行计算。
以下是我的代码,如果有人可以提供帮助,将不胜感激。
#include <stdio.h>
#include <stdlib.h>
float res_calculation (float r1, float r2, float r3, float* RS, float* RP )
{
    *RS = (r1+r2+r3);
    *RP = (r1*r2*r3)/(r1*r2+r2*r3+r1*r3);
    
    
    return 0;
}
int main()
{
    float r1,r2,r3,rs,rp;
    printf("Please enter the values for r1, r2 and r3 seperated by a space");
    scanf ("%f %f %f", &r1, &r2, &r3);
    
    res_calculation(r1,r2,r3,&rs,NULL);
    printf("%f",rs);
    
    res_calculation(r1,r2,r3,&rp,NULL);
    printf("%f",rp);
    
    
    return 0;
}
你传递NULL的RP参数res_calculation。此参数是函数随后取消引用的指针。因此,如果您传递一个 NULL 指针,该函数将尝试取消引用一个未定义行为的 NULL 指针。
您需要为此参数传递一个有效的指针值,即
res_calculation(r1,r2,r3,&rs,&rp);