>我已经提供了代码的屏幕截图,错误也是可见的,我不明白错误,并将感谢任何形式的帮助。
你需要创建一个指向数组的指针,然后给它合并函数。 或者替换数组链接上的 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
,而不是手动内存管理。