为什么会出现 argument of type "int *" is incompatible with parameter of type "int"
时间: 2023-06-08 20:07:33 浏览: 647
这个错误通常是由于函数参数类型不匹配引起的。当一个函数期望接受一个整型参数,但是实际传入的是一个指向整型的指针时,就会出现这个错误。解决方法通常是修改函数声明或者修改传入参数的类型。如果你需要更具体的解决方法,请提供更多的上下文信息,我可以为你提供更详细的建议。
相关问题
error: argument of type "int *" is incompatible with parameter of type "int **"
This error occurs when a function is expecting a pointer to a pointer (e.g. int **), but a pointer to a single integer (e.g. int *) is passed as an argument.
For example, consider the following code:
```c
void foo(int **p) {
// do something with p
}
int main() {
int x = 5;
foo(&x); // ERROR: argument of type "int *" is incompatible with parameter of type "int **"
return 0;
}
```
In this example, the function `foo` expects a pointer to a pointer to an integer, but we are passing a pointer to a single integer `x`. To fix this error, we need to pass the address of a pointer to an integer, like this:
```c
void foo(int **p) {
// do something with p
}
int main() {
int x = 5;
int *ptr = &x;
foo(&ptr); // OK
return 0;
}
```
Here, we create a pointer `ptr` that points to `x`, and then pass the address of `ptr` to `foo`. Now, `foo` can access `x` through the pointer `ptr`.
argument of type "int" is incompatible with parameter of type "int *restrict"
这个错误提示通常出现在你在调用函数时,传入的参数类型和函数定义时约定的参数类型不匹配。这个错误提示表示你传给函数的参数是一个整数类型(int),而函数定义时参数应该是一个指向整数类型的指针(int *restrict)。
可能的原因是你传递给函数的参数类型错误,或者函数定义时参数类型定义错误。你需要检查函数定义和调用的参数类型是否匹配,如果不匹配需要进行修改。另外,也需要检查函数定义时参数类型是否正确。
阅读全文