“int shoppingOffers(int *,int **,int *)”: 无法将参数 2 从“int [10][10]”转换为“int **” 怎么解决
时间: 2024-01-01 11:04:10 浏览: 32
这个错误通常是由于指针类型不匹配导致的。对于一个二维数组,它的类型是`int [10][10]`,而不是`int **`。
你可以将函数参数修改为`int shoppingOffers(int *,int[][10],int *)`,或者将二维数组作为一维指针传递,然后在函数内部使用下标来访问元素。例如:
```c++
int shoppingOffers(int *price, int *special, int *needs, int s, int n) {
// 将二维数组special作为一维指针传递,并在函数内部使用下标来访问元素
for (int i = 0; i < s; i++) {
int j = 0;
for (; j < n; j++) {
if (special[i * (n + 1) + j] > needs[j]) {
break;
}
}
if (j == n) {
// ...
}
}
// ...
}
```
另外,如果你想要将二维数组作为指针传递,可以使用动态内存分配。例如:
```c++
int shoppingOffers(int *price, int **special, int *needs, int s, int n) {
// 为二维数组分配内存
int **specialArray = new int*[s];
for (int i = 0; i < s; i++) {
specialArray[i] = new int[n + 1];
for (int j = 0; j <= n; j++) {
specialArray[i][j] = special[i][j];
}
}
// 在函数内部使用specialArray
// 释放内存
for (int i = 0; i < s; i++) {
delete[] specialArray[i];
}
delete[] specialArray;
}
```
不过,需要注意的是,动态内存分配需要在函数内部进行释放,否则会导致内存泄漏。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)