不兼容的指针类型警告初始化-函数指针的C数组

时间:2019-10-16 15:45:05

标签: c function pointers initialization function-pointers

我无法解决此警告

这是我的原型

int doubeInput (int* inputVal);
int squareInput (int* inputVal);
int cubeInput (int* inputVal);

有错误的行是

int (*funPtrArr[])(int)={doubleInput, squareInput, cubeInput};

此行位于主行

while (choice >0 && choice <=3)
    {
        (*funPtrArr[choice])(inputVal); 

    }

这是我的功能

//function to perform the menu option 1,user input passed in
int doubleInput (int* inputVal)
{
    //calculate double
    int answer = (*inputVal) *= (2);
    printf("%d x 2", inputVal); 

    return (answer);
}


//function to perform the menu option 2,user input passed in
int squareInput (int* inputVal)
{
    //calculate square
    int answer = (*inputVal) *= (*inputVal);
    printf("%d x %d", inputVal, inputVal);

    return (answer);

}


//function to perform the menu option 3,user input passed in
int cubeInput (int* inputVal)
{
    //calculate cube
    int answer = (*inputVal) *= (*inputVal) *= (*inputVal);
    printf("%d ^ 3", inputVal);

    return (answer);
}

我一直收到此错误,我是C语言的新手。我的功能尚未完成,因为我无法对其进行测试。 请帮助

1 个答案:

答案 0 :(得分:2)

int (*funPtrArr[])(int) 

声明带有int参数的函数的指针数组,但是您的函数具有int *参数。 因此,该行应为

int (*funPtrArr[])(int *)={doubleInput, squareInput, cubeInput};