Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中数组的指针类型不兼容_C_Arrays_Pointers - Fatal编程技术网

C中数组的指针类型不兼容

C中数组的指针类型不兼容,c,arrays,pointers,C,Arrays,Pointers,对不起,如果这是一个愚蠢的问题,我觉得我错过了一些简单的东西,但我无法通过谷歌找到它 我得到了一个错误: lab9q4.c:72:15: warning: passing argument 1 of 'ReadSalaries' from incompatible pointer type [-Wincompatible-pointer-types] ReadSalaries(&salaries, size); ^~~~~~~~~ lab9q4.c:20:26:

对不起,如果这是一个愚蠢的问题,我觉得我错过了一些简单的东西,但我无法通过谷歌找到它

我得到了一个错误:

lab9q4.c:72:15: warning: passing argument 
1 of 'ReadSalaries' from incompatible 
pointer type [-Wincompatible-pointer-types]
ReadSalaries(&salaries, size);
           ^~~~~~~~~
lab9q4.c:20:26: note: expected 'float **' 
but argument is of type 'float (*) [(sizetype)size]'
void ReadSalaries(float *salaries[], int size)
这是我的密码:

float ReadSalary(int num)
{
    int salary;
    printf("Enter Salary %d: ", num);
    scanf(" %d", &salary);
    return(salary);
}

void ReadSalaries(float *salaries[], int size) 
{
    for (int i = 0; i > size; i++)
    {
        *salaries[i] = ReadSalary((i + 1));
    }
}

int main() 
{
    const int size = 10;
    float salaries[size];

    ReadSalaries(&salaries, size);
}
大体上

ReadSalaries(&salaries[0], size);

您希望更改元素,而不是数组,因此可以安全地传递一个简单的指针。

这是一个好问题,但已经回答了100次。当您获取
palaries
的地址时,类型是
float(*)[size]
而不是
float**
(正如编译器告诉您的那样)。(注意例外情况…特别是“.the monary&operator…”部分。)还请注意,如果删除
”和“
,您可以使用一个简单的
浮点*
指针。
ReadSalaries(&salaries[0], size);