passing argument 3 of 'Least_Square' from incompatible pointer type [-Wincompatible-pointer-types]
时间: 2024-02-25 18:55:34 浏览: 245
这个错误一般是因为函数调用时传递的参数类型与函数声明的参数类型不一致,导致编译器报出该错误。
比如说,函数声明如下:
```c
void Least_Square(double *x, double *y, double *coefficients);
```
如果在调用该函数时,传递的第三个参数类型不是 `double*` 类型,就会出现这个错误。例如:
```c
double coefficients[2];
Least_Square(x, y, coefficients); // 错误:第三个参数类型不是 double*
```
正确的做法是将第三个参数传递为 `double*` 类型,例如:
```c
double *coefficients;
coefficients = malloc(2 * sizeof(double)); // 申请内存
Least_Square(x, y, coefficients); // 正确:第三个参数类型为 double*
free(coefficients); // 释放内存
```
或者在函数调用之前,先定义一个 `double` 类型的数组,再将数组名作为第三个参数传递给函数。例如:
```c
double coefficients[2];
Least_Square(x, y, coefficients); // 正确:第三个参数类型是 double*
```
这样就可以避免这个错误了。
阅读全文