cannot convert 'int (*)[9]' to 'int**' for argument '1' to 'int maopao(int**)'
时间: 2023-04-03 17:03:35 浏览: 113
这个问题是关于 C++ 编程语言的问题,我可以回答。这个错误提示是因为函数 maopao 的参数类型是 int**,而传入的参数类型是 int (*)[9],两者不匹配。可以通过将参数类型改为 int (*arr)[9] 来解决这个问题。
相关问题
cannot convert 'float*' to 'int*'for argument "1" to "float aver(float*,int)"
这个问题的错误提示是类型不匹配,函数aver()的第一个参数应该是一个float类型的指针,但是实际传入的是一个int类型的指针。你需要将第一个参数改为float类型的指针,或者将传入的指针强制转换为float类型的指针。
示例代码:
```
float aver(float* nums, int count) {
float sum = 0.0;
for (int i = 0; i < count; i++) {
sum += nums[i];
}
return sum / count;
}
int main() {
int arr[] = { 1, 2, 3, 4, 5 };
int count = sizeof(arr) / sizeof(int);
// 传入int类型的指针
float result = aver(arr, count); // 报错:cannot convert 'int*' to 'float*' for argument "1" to "float aver(float*,int)"
// 将第一个参数改为float类型的指针
float arr2[] = { 1.0, 2.0, 3.0, 4.0, 5.0 };
result = aver(arr2, count); // 正确
// 将传入的指针强制转换为float类型的指针
result = aver((float*)arr, count); // 正确,但不推荐这种做法
return 0;
}
```
[Error] cannot convert 'int*' to 'const char*' for argument '1' to 'int puts(const char*)'
这个错误是因为你将一个整数指针传递给了 `puts` 函数,但 `puts` 函数期望接收一个字符串(即 `const char*` 类型的参数)。可以尝试将整数指针转换为字符串,或者使用 `printf` 函数来打印整数值。以下是两个示例:
```c++
int num = 42;
char str[10];
sprintf(str, "%d", num); // 将整数转换为字符串
puts(str); // 输出字符串
```
或者:
```c++
int num = 42;
printf("%d", num); // 直接使用 printf 打印整数值
```