gpt4 book ai didi

c++ - 将修改后的数组值传递回 C++ 中的主函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:49:23 25 4
gpt4 key购买 nike

编写一个反向函数,它接受一个整数数组及其长度作为参数。你的函数应该反转数组的内容,将反转后的值保留在原始值中数组,不返回任何内容。

 #include<iostream>

using namespace std;

void printArray(int a[], const int n)
{
for(int i=0;i<n;i++)
{
cout<<a[i];
i!=n-1 ? cout<<", " : cout<<"";
}
}

void reverse(int a[], const int n)
{
int reverse[n];
for(int i=0;i<n;i++)
{
reverse[n-1-i]=a[i];
}
a = reverse;
}

int main()
{
int *a,n;
cin>>n;
a = new int[n];
for(int i=0;i<n;i++)
a[i]=0;
a[0]=1;
reverse(a,n);
printArray(a,n);
delete [] a;
a = NULL;
return 0;
}

调用reverse函数后main中的数组没有修改,请指教! :(

最佳答案

您不能将一个数组分配给另一个数组。而是从 reverse copy 回到 a:

std::copy(reverse, reverse + n, a);

或者可能

memcpy(a, reverse, n * sizeof(int));

关于c++ - 将修改后的数组值传递回 C++ 中的主函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19033612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com