在函数参数中使用 NULL 语句

1 c null function

我只是在做一个修订任务,并且遇到了参数太少而无法运行的错误,所以我做了一些研究,显然可以将 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;
}
Run Code Online (Sandbox Code Playgroud)

dbu*_*ush 5

你传递NULLRP参数res_calculation。此参数是函数随后取消引用的指针。因此,如果您传递一个 NULL 指针,该函数将尝试取消引用一个未定义行为的 NULL 指针。

您需要为此参数传递一个有效的指针值,即

res_calculation(r1,r2,r3,&rs,&rp);
Run Code Online (Sandbox Code Playgroud)