错误:从"int"到"int*"的转换无效[-允许].我在下面提供了我的代码,我



>我已经提供了代码的屏幕截图,错误也是可见的,我不明白错误,并将感谢任何形式的帮助。

你需要创建一个指向数组的指针,然后给它合并函数。 或者替换数组链接上的 merge(*intarr1, int n1, *intarr2, int n2, *intans(

merge声明为void merge(int*, int, int*, int, int*)。但在main你称之为

merge(n1, n2, arr1, arr2);

int, int, int*, int*(缺少第 5 个参数(。您需要为参数分配一些内存ans。大概是这样的

auto arrAns = new int[n1 + n2];

(不要忘记在最后delete[]它!(并按正确的顺序传递它们:

merge(arr1, n1, arr2, n2, arrAns);

最后一些注意事项:

  • 为什么不int arrAns[n1 + n2];?因为VLA不是C++标准的一部分
  • 尽可能使用标准容器,如std::vector,而不是手动内存管理。

最新更新